Enrique Meza's Pachuca booked their spot in the last eight courtesy of a dramatic 4-3 win over Queretaro at the Estadio La Corregidora on Friday.
The win was enough for Pachuca (24 points, +2) to jump to sixth in the standings, ahead of Leon (23 points, +6), who were 2-1 winners against seventh-placed Tijuana (24 points, -6).
Queretaro and Pachuca were both battling for a spot in the finals but it was the home side that were on track for the play-offs thanks to a 22-minute hat-trick from Ricardo Jesus.
But it all went horribly wrong for the home side, with Pachuca duo Enrique Esqueda and Abraham Carreno scoring two goals each in the final 15 minutes to eliminate Queretaro (21 points, -4) from play-off contention.
Leon's win at Tijuana, which was enough for them to scrape into the top eight, also proved costly for Chiapas (+0) and Monterrey (+0), who finished level on 23 points but adrift on goal difference.
Despite the loss, Tijuana still finished seventh on 24 points and progressed to the final stages after Morelia (21 points, +1) lost 3-1 to Puebla, Atlas (21 points, -6) suffered a 2-1 defeat at Tigres UANL, while Guadalajara (21 points, -5) were beaten 1-0 by Monterrey.
Two goals apiece to Lucas Viatri and Wilberto Cosme inspired Chiapas to a 5-2 rout over second-bottom Atlante but it still was not enough to see them overhaul Leon on goal difference.
In other results, league leaders and recently crowned CONCACAF Champions League winners Cruz Azul (36 points, +9) ended the regular season with a late 2-1 victory at home to third-placed Pumas UNAM (25 points, +6).
Toluca (32 points, +11), second in the table, drew 1-1 at home to fifth-placed America (25 points, +4) in a match that saw both teams reduced to 10 men.
Meanwhile, fourth-placed Santos Laguna (25 points, +4) played out a 2-2 draw with cellar-dwellers Veracruz.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.