Chile couldn’t capitalise on the man advantage, no matter they how hard they tried.
Eduardo Vargas thought he’d grabbed the equaliser in the 62nd with a close-range shot, but VAR confirmed the offside call was correct.
In the 69th, Mena’s cross from the left found Ben Brereton, whose looping header had Brazilian goalkeeper Ederson wrong-footed but caromed off the crossbar.
Ederson came up with another big save in the 78th as Chile battled desperately for an equaliser. Carlos Palacios went for broke five minutes into injury time with an attempt from the top of the box that sailed over the crossbar.
Brazil’s best first-half chance came after 20 minutes, when Neymar found Roberto Firmino at Claudio Bravo’s far post, but the Liverpool striker couldn’t convert.
Ederson was soon called on and dived right to save a shot from Vargas after the Chilean striker shook off Thiago Silva.
The remaining quarter-finals will be played on Saturday, when Argentina take on Ecuador and Uruguay face Colombia
Jesus, played in by Neymar, nearly fired Brazil ahead shortly before halftime but Chilean keeper Claudio Bravo tipped his shot over the bar.
With the victory, Brazil set up a rematch of the 2019 final in which they beat Peru 3-1.
Peru punched their semi-final ticket earlier Friday, beating Paraguay 4-3 on penalities after playing to a 3-3 draw in regular time in Goiania.
The remaining quarter-finals will be played on Saturday, when Argentina take on Ecuador and Uruguay face Colombia.
In Goiania, Miguel Trauco scored the decisive penalty for Peru in a shoot-out that echoed the drama of the match with two shots over the crossbar and three saves.
Peruvian keeper Pedro Gallese set the stage for Trauco with his diving save of Alberto Espinola’s attempt.
Paraguay captain Gustavo Gomez had opened the scoring in the 11th minute, but Gianluca Lapadula scored in the 21st and 40th to give Peru the lead.
Paraguay’s prospects looked bleak when Gomez was sent off moments before halftime, but Junior Alonso pulled them level in the 54th minute.
Yoshimar Yotun’s 80th-minute strike put Peru up 3-2, but after Andre Carillo was sent off in the 84th to reduce the Peruvians to 10 men Gabriel Avalos grabbed a last-minute equaliser to force the shoot-out.