Honduras, needing a win to have any chance of making fourth place, came firing at all cylinders, forcing Guillermo Ochoa to a pair of saves in the opening minutes.
The game, however, calmed after the hectic opening, and Mexico looked on course to breaking Honduran hearts when Oribe Peralta found himself alone inside the box to fire in the go-ahead goal.
Honduras battled back, and in the 34th minute, Alberth Ellis powered a header past Ochoa to put things at 1-1.
But Honduras’ joy was short-lived, and moments later, an almost perfect build-up finished with Carlos Vela giving Mexico the lead at the half.
The second half began at a similar pace to the first, and after 54 minutes, Honduras capitalized when a shot from Eddie Hernandez was deflected by Ochoa to level the score for the second time in the game.
And six minutes later, Honduras completed the comeback as Romell Quioto took advantage of some laxed Mexican defending on a set-piece to send the Estadio Metropolitano in San Pedro Sula rocking.
With the United States momentarily losing at Trinidad and Tobago, Honduras knew that a win would be enough to clinch a place in the playoff. In the final play of the game, Mexico won a dangerous free-kick on the left-hand side, but unlike four years ago when the United States saved Mexico from elimination, there would be no last moment of drama as Guardado’s free-kick was misfired wide.
With the final whistle, Honduras will now face Australia for one of the final places in the 2018 World Cup. Meanwhile, Mexico, who had already qualified to the World Cup, finish the Hex in first place with 21 points.