Premier League duo Gabriel Jesus and Roberto Firmino were on the scoresheet as the host nation inflicted more major tournament misery on Argentina, who have lost four of the last five Copa America finals and are still without a trophy since 1993.
The final scoreline was harsh on the visitors, who hit the woodwork through Sergio Aguero and Lionel Messi, but Lionel Scaloni's side ultimately went unrewarded for arguably their best performance of the tournament to date.
Brazil, meanwhile, will face either Chile or Peru in Sunday's final as they look to maintain their record of having won the Copa America every time they have hosted the tournament.
The match got underway to a cacophony of noise in the same stadium where Brazil were beaten 7-1 by Germany at the 2014 World Cup, and the passion did not take long to spill onto the field as the opening exchanges were broken up by a series of fouls.
Brazil made the better start to proceedings, but it was Argentina who came close first when Leandro Paredes let fly from all of 35 yards and saw his serving piledriver zip narrowly over the crossbar with Alisson Becker beaten.
First blood went to the hosts just seven minutes later, though, as Jesus finally scored his first tournament goal for Brazil with a simple finish from close range.
Captain Dani Alves was instrumental in the build-up as he took the ball away from two Argentine defenders before finding Firmino, whose low cross from the right channel allowed an unmarked Jesus to sweep his finish past a helpless Franco Armani.
The opening goal was always likely to be important considering Brazil had not conceded a single goal in the tournament going into this match, although Argentina came as close as anyone has to breaking that run of clean sheets on the half-hour mark.
Messi's pinpoint free kick from deep picked out Aguero, whose glancing header beat Alisson but came back off the underside of the crossbar before being hacked away by the defence.
The near-miss sparked Argentina's best spell of the first half, with Aguero seeing a low strike blocked by Marquinhos before Messi fired high and wide after escaping the attention of three Brazilian defenders.
Argentina still came out much the brighter of the two sides, forcing Alisson into his first save of the contest just five minutes after the restart through Lautaro Martinez's snapshot from the edge of the box.
Scaloni's side had another shooting opportunity moments later as Martinez, Aguero and Messi all combined to tee up Rodrigo De Paul, who blazed his shot over the crossbar when he should have done better.
Brazil had been slow to get going at the start of the second half, but they almost got the all-important second goal when Jesus wriggled away from a cluster of Argentine defenders before smuggling the ball through for Philippe Coutinho, who could not hit the target under pressure from the last man.
Argentina were quickly back on the front foot, though, and it took the woodwork to deny them again when Messi's half-volley crashed against the upright. The skipper then flashed the rebound across the six-yard box, but it was just too far in front of Aguero as Brazil survived once more.
Messi was having a growing influence on the game and saw a free kick well saved by Alisson shortly after the hour mark, but just when it looked as though Argentina might be about to find an equaliser Brazil hit them with a killer second goal against the run of play.
Jesus suddenly found himself in space as the visitors committed men forward, and he held off challenges from German Pezzella and Nicolas Otamendi before laying the ball on a plate for Firmino, who made no mistake with his finish.
There proved to be no way back for Argentina as they were condemned to yet more heartbreak, raising renewed questions over the international future of Messi following two previous retirements.
For Brazil, meanwhile, Sunday's final will offer them the chance to end a 12-year trophy drought despite going through the entire tournament without their own talisman Neymar.
BRAZIL (4-2-3-1): Alisson; Alves, Marquinhos (Miranda 64'), Silva, Sandro; Arthur, Casemiro; Jesus (Allan 80'), Coutinho, Everton (Willian 46'); Firmino
ARGENTINA (4-3-1-2): Armani; Foyth, Pezzella, Otamendi, Tagliafico (Dybala 85'); De Paul (Lo Celso 67'), Paredes, Acuna (Di Maria 59'); Messi; Martinez, Aguero