A 60th-minute goal from Romell Quioto proved to be the match-winner for Jorge Luis Pinto's men at the Estadio Olimpico Metropolitano in San Pedro Sula.
Despite a decent first half, Honduras found themselves behind after goals from Oribe Peralta and Carlos Vela.
But an unfortunate Guillermo Ochoa own goal and Quioto strike in the second half completed a stunning comeback, sending Honduras into a play-off against Australia.
Juan Carlos Osorio made nine changes to the Mexico starting XI that rallied past Trinidad and Tobago, with only Miguel Layun and Hector Herrera keeping their spots.
Coming off a 1-1 draw in Costa Rica, Honduras made three changes – Ever Alvarado, Henry Figueroa and Jorge Claros replacing Emilio Izaguirre, Johnny Palacios and Bryan Acosta.
Honduras enjoyed the far better of the opening exchanges, with Mexico goalkeeper Ochoa forced into two good saves.
However, some sloppy defending allowed Mexico to take the lead in the 17th minute.
Raul Jimenez's cross from the right found Peralta, who had time to take a touch and fire past Donis Escober at the back post.
Honduras levelled in the 34th minute through Alberth Elis, who headed in an Alexander Lopez set-piece.
Jimenez was denied by a goal-line clearance moments later for Mexico, but they retook the lead before the break.
A clipped pass from Herrera over the top released Vela, who finished well past Escober.
But, remarkably, the hosts struck twice early in the second half.
The equaliser was fortunate for Honduras as a close-range strike cannoned off the crossbar before hitting Ochoa in the back and going in.
The home fans were sent into raptures on the hour-mark thanks to Quioto.
Quioto angled his run in behind to perfection to receive a Claros pass before twisting and shooting into the bottom corner from just inside the area.
Honduras were put under some pressure in the final half-hour, but held on to book a spot in the play-off.