Real shocked, Malaga cruise
Benat Etxebarria gave Real Betis a surprise 1-0 win over Real Madrid in Seville on Saturday to leave the champions eight points behind leaders Barcelona having played a game more.
Spain midfielder Benat pounced on an error to score after 17 minutes and Jose Mourinho's team ran out of steam and ideas as they chased the game in the second half.
Real Madrid stayed third with 26 points, five behind second-placed Atletico Madrid who host Sevilla on Sunday.
Unbeaten leaders Barca can open an 11-point gap over their arch-rivals with a win at sixth-placed Levante, also on Sunday.
Betis climbed to fifth with 22 points, behind Malaga on goal difference after the Costa del Sol side returned to winning ways with a 4-0 rout at home to a desperately poor Valencia.
Francisco Portillo, Javier Saviola, Roque Santa Cruz and Isco were all on target as Manuel Pellegrini's side notched their first win in November.
Betis, stung by a humiliating 5-1 rout at Sevilla in the city derby last weekend, looked to make amends in front of their fans with a high-tempo start against Real.
Betis pressured the visitors and took the lead when Alvaro Arbeloa's miscued clearance reached Benat who skipped past Sami Khedira and fired a low shot past Iker Casillas from the edge of the area.
Madrid were making little headway, and Jose Mourinho gambled with a double change at the break, throwing on Luka Modric and Kaka in place of midfield duo Mesut Ozil and Khedira.
Karim Benzema had an effort unfairly ruled out for offside, but after a strong start to the second half Real wilted and Betis always looked dangerous on the counter.
Malaga laboured to make the most of Portillo's superb eighth-minute curler against Valencia with a bumpy pitch at the Rosaleda doing little to help their cause.
They squandered a host of chances before Argentine Saviola struck a deflected second in the 74th minute, and Paraguayan substitute Santa Cruz followed up soon after. Midfielder Isco fired in a long-range fourth at the end.
Valencia, who are 10th with 18 points, and Malaga qualified for the last 16 of the Champions League during the week, but the former's exertions appeared to have taken a heavier toll.
Mauricio Pellegrino's side battled back with 10 men to draw 1-1 at home to Bayern Munich and were missing suspended top scorer Roberto Soldado.
They were kept in the game by goalkeeper Diego Alves until the last 15 minutes, when a second yellow card for defender Adil Rami contributed to their late collapse.
Earlier, exciting young Brazilian forward Leo Baptistao was the difference as Rayo Vallecano ran out 2-0 winners over plummeting Real Mallorca, with both goals coming in the last three minutes.
The 20-year-old broke the deadlock with a fierce low drive from outside the area, and then dribbled past two players to set up Andrija Delibasic for a tap in at the end.
A thumping shot from Manucho just past the hour mark earned Valladolid a 1-0 win over Granada.