Leandro Damiao fired Brazil into the Olympic semifinals as Brazil survived a major scare against nine-man Honduras .
The Internacional striker cancelled out Mario Martinez's stunning opener, and after Neymar had done the same from the penalty spot following Roger Espinoza's equally eye-catching 48th-minute finish, booked a trip to Old Trafford on Tuesday evening with his second.
But Honduras played a full part in a thrilling encounter at a packed St James' Park despite having midfielder Wilmer Crisanto sent off with just 32 minutes gone and Espinoza at the death, both for two bookings.
Brazil should have been ahead with just 30 seconds played when Damiao burst free through the middle, but pushed his right-foot shot wide with only keeper Jose Mendoza to beat.
Oscar saw a second-minute effort blocked by Honduras skipper Johnny Leveron after good work by Neymar, who went close himself during a confident start.
However, the opening goal arrived at the other end after 12 minutes when Espinoza left Rafael da Silva and Sandro for dead before pulling the ball back for Maynor Figueroa to divert it into the path of Martinez, who thumped a sumptuous dipping volley past helpless keeper Gabriel.
Figueroa tested Gabriel with a powerfully-struck 15-minute free-kick from distance, but the game turned 13 minutes before the break when Crisanto was booked twice within a single disastrous minute for fouls on Hulk and Neymar.
The Brazilians were back in the game within six minutes when, after fullback Arnold Peralta had failed to clear Hulk's driven cross, Damiao tapped home the equalizer.
The 10 men hit back within three minutes of the restart when Espinoza cut inside from the right to curl a left-foot shot just inside the far post, but the lead was fleeting as Neymar converted from the spot after Damiao had been tripped by defender Jose Velasquez.
Brazil finally got their noses in front on the hour when, after Oscar and Neymar had combined, Damiao rolled Leveron and blasted past Mendoza.