Brazil could have taken the lead within the opening minutes as Leandro Damiao was sent through on goal, but he put his effort wide.
As if keeping a lead against Brazil for 80 minutes wasn't hard enough, Honduras made it even harder on themselves when Wilmer Crisanto received two yellows in the space of 30 seconds, the second of which came for a foul on Neymar.
Brazil took full advantage as Damiao took advantage of a moment of hesitation in the Honduras box to poke in from close range.
Honduras responded at the start of the second half, however, retaking the lead through Roger Espinoza's effort. Once again, though, the referee played a big part in Brazil's comeback, awarding a penalty to the South Americans just two minutes later.
Neymar stepped up and fired his spot kick past Mendoza to level the sides once more. Just ten minutes later, Brazil took the lead for the first time as Neymar fed Damiao, who turned his marker before slotting the ball home.
The final nail was put in the coffin of Honduras in the 90th minute as Espinoza was shown a yellow card to reduce his side to just nine men, and Brazil saw the match out to set up a semi-final against either Great Britain or Korea.