Neymar scored the fastest goal in Olympic history then added a penalty kick in stoppage time and Brazil went on to beat Honduras 6-0 for a spot in the gold-medal match in Rio de Janeiro.
Brazil has never won Olympic gold in the sport. They'll face the winner of Wednesday's late match between Germany and Nigeria in Sao Paulo.
Neymar scored in the first 15 seconds of the semifinal at Rio's historic Maracana Stadium but collided with Honduran goalkeeper Luis Lopez on the goal. He lay on the field for several minutes, then staggered after getting up and was stretchered off.
The near-capacity crowd at Maracana was stunned into quiet for a time, before breaking into song to encourage its superstar, who returned quickly.
Gabriel Jesus added to the drama with a pair of goals in the 26th and 35th minutes for Brazil. Marquinhos scored in the 51st minute.
Luan added a goal in the 79th minute before Neymar's penalty kick in the first minute of stoppage time.