Leandro Damiao scored two second-half goals to help Brazil beat Korea Republic 3-0 and reach its first Olympic men's final in 24 years.
Defensive midfielder Romulo put Brazil ahead in the 38th minute and Damiao added his goals in the 57th and 64th minutes to leave the South American side one victory away from winning its first gold in football.
Brazil will face Mexico, which earlier defeated Japan 3-1 at Wembley in the other semi-final.
Brazil was the bronze-medallist in 2008 in Beijing but hadn't reached the Olympic final since the 1988 Seoul Games, when the team led by Romario and Bebeto finished with the silver.
The South American side will be playing in its third Olympics final, having also won silver at the 1984 Los Angeles Games.
Brazil came to the London Games as the main gold-medal contender because of the stars in its team, including Neymar and Oscar.
And while it didn't disappoint there have been some big-name casualties like Spain and Uruguay who were eliminated in the first stage.
Host nation Great Britain, another major fancy, fell to Korea Republic in the quarter-finals.
Mexico reached the final after coming back from a 1-0 deficit to beat Japan 3-1.
The Japanese dominated at the start and led through a goal from Otsu in the 12th minute.
But the Mexicans bounced back with a 30th-minute strike from Marco Fabian.
In the second half, Oribe Peralta gave Mexico the advantage with a blistering shot in the 65th minute while Javier Cortes sealed a final berth for Mexico with a goal in the 93rd minute.
London 2012 has given women's football in the UK an 'unprecedented platform' on which to create a lasting legacy, according to the Football Association's head of national game Kelly Simmons.