Neymar scored after only 14 seconds - the fastest goal in Olympic football history - as Brazil thrashed Honduras 6-0 to reach the men's final in Rio.
The hosts will next face Germany, 7-1 winners against Brazil at the 2014 World Cup, as goals from Lukas Klostermann and Nils Petersen gave the European side a 2-0 win over Nigeria.
Neymar and Gabriel Jesus scored twice for Brazil in their convincing victory.
Marquinhos and Luan also scored to take them into their fourth Olympic final.
Brazil have never won gold in the men's football competition, losing in the finals in 1984, 1988 and 2012.
Saturday's game will kick off at 21:30 BST and be played in front of a capacity crowd of 78,000 at the Maracana.
Revenge for 2014?
Brazil now have a chance to gain some measure of revenge after Germany humiliated them in the semi-finals of their home World Cup two years ago.
Tipped to win the competition on home soil for the first time, Brazil, without the injured Neymar, were 5-0 down after only 29 minutes on their way to their heaviest ever World Cup defeat.
Rogerio Micale, coach of Brazil's Olympic football team, said his side would cope with the expectation from the home fans.
"We are going to deal with the pressure as we have done so far," he said. "We knew there would be a lot of pressure to win the gold medal as this would be an unprecedented achievement.
"We will work as we have done from the start and we will deliver results by striving to our absolute utmost. We will give our all - our football is not just about quality, but also perspiration which is why we can hope to make our big dream come true."
The quickest Olympic goal in a semi-final thrashing
Brazil began their campaign with goalless draws against South Africa and Iraq and were booed by their own fans after their second match.
Nevertheless, they reached the final by easing to victory over an outclassed Honduras side, who qualified from the group phase at the expense of Argentina.
After Neymar, who played in the 2-1 final loss against Mexico four years ago, gave Brazil an early lead, they never looked like losing.
No other Brazilian player had touched the ball when the Barcelona forward dispossessed Johnny Palacios close to the edge of the penalty area and shot at goal. The ball hit goalkeeper Luis Lopez, who had charged out to try to smother the shot, and rebounded off Neymar into the net.
Team-mate Jesus, who has joined Manchester City in a £27m deal but will stay with Palmeiras until December, then twice ran clear to score as Brazil opened a 3-0 lead after only 35 minutes.
Marquinhos added a fourth, powering home from close range when unmarked following a corner, before Luan tapped in after substitute Felipe Anderson's run.
Neymar got his second goal of the match with a 92nd-minute penalty after Palacios fouled Luan.
World champions and now Olympic champions?
Germany have a chance to add the Olympic title to the World Cup they won in Brazil two years ago.
Like the hosts, Germany took an early lead in the semi-finals as defender Klostermann scored in the ninth minute.
Arsenal's Serge Gnabry started the move and played in Maximilian Meyer, whose low cross was converted from close range by Klostermann.
However, Germany had to wait until the 89th minute before scoring their second.
Petersen, who scored five as Germany hammered Fiji 10-0 earlier in the competition, tapped in at the back post after Davie Selke shot across goal.
Subscribe to the BBC Sport newsletter to get our pick of news, features and video sent to your inbox.