Real cut Barcelona's lead at the top of La Liga table to 10 points after coming from behind twice to win an exciting home game with relegation-threatened Mallorca.
Emilio Nsue gave the visitors an early lead but Gonzalo Higuain levelled, before Alejandro Alfaro put Gregorio Manzano's side in front again before half-time.
Two smart substitutions by Madrid coach Jose Mourinho at the break gave Los Blancos the lift they needed and goals by Cristiano Ronaldo, Luka Modric, Higuain and Karim Benzema in the second half gave a dominant Madrid the three points.
Champions League-chasing Real Sociedad climbed up to fourth place in the table with a resounding 4-1 win over Valladolid at Anoeta.
Two first-half goals by Antoine Griezzmann and one from Imanol Agirretxe set the Basques on their way to victory, and Xabi Prieto rounded off the win when he netted shortly after the re-start.
Javi Guerra scored a late consolation goal for the visitors in the final stages of the game but it was little use to Miroslav Djukic's side.
Valencia remain just two points behind Sociedad after Roberto Soldado's penalty helped earn a 3-0 victory over top four rivals 10-man Real Betis.
Los Che were knocked out of this season's Champions League by Paris Saint Germain at the last 16 stage earlier in March but they remain in a tense race for next season's competition.
Soldado scored from the spot to open the scoring in the 17th minute after being brought down by defender Antonio Amaya, who was sent off for his foul.
Valencia did suffer a concern in the early stages of the second half when star striker Soldado had to be substituted due to injury.
But Betis substitute Paulao's own goal and Jonas' late strike in the final five minutes ensured there was no comeback.
Borja Fernandez claimed the only goal of the game as Getafe kept their Europa League hopes alive with victory over Athletic Bilbao.
The decisive moment came in the seventh minute when the midfielder lashed the ball home following Pedro Leon's corner.