With one eye on their CONCACAF Champions League final second leg against Toluca on Thursday, a weakened Cruz Azul were well beaten at the Estadio Generalisimo Jose Maria Morelos y Pavon.
A three-goal first half set up sixth-placed Morelia's win, but Luis Tena's Cruz Azul side went unpunished.
Toluca were unable to take advantage, missing their chance to go top after suffering a 1-0 loss at Atlas.
They, too, put out a weaker side, with the Champions League tie locked at 0-0 after the first leg at Cruz Azul.
At Morelia, the hosts took a 17th-minute lead against the league leaders as Aldo Ramirez's 25-yard shot went in off the underside of the crossbar.
Hector Mancilla's goal from an angle nine minutes later made it 2-0, but Cruz Azul pulled a goal back shortly before the break.
Achille Emana finished neatly into the bottom corner in a one-on-one, only for Mancilla to restore the hosts' two-goal lead from the penalty spot on the stroke of half-time.
Duvier Riascos and Oscar Fernandez completed the rout with goals in the final 15 minutes.
At Atlas' Estadio Jalisco, Rodrigo Millar's 70th-minute header saw the hosts past Toluca.
Pumas UNAM closed the gap on the top two as Roberto Ramirez struck a 55th-minute winner in their 1-0 victory at home to Guadalajara.
The third-placed outfit are six points behind Toluca.
Santos Laguna's six-match unbeaten league run came to an end after a thrilling 3-2 loss at home to Chiapas.
Atlante suffered a fourth straight league loss as Dario Benedetto's winner six minutes before full-time led Tijuana to a 2-1 victory.
Second-bottom Puebla claimed just their third league win of the season, overcoming Pachuca 2-1 away from home.
Miguel Sabah's brace led Leon to a 3-0 win over Tigres UANL, Monterrey thrashed Veracruz 4-1 and America and Queretaro played out a 0-0 draw.
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.