Real Madrid are again just two points behind Spanish leaders Barcelona, after a stormy 3-2 win on Monday at local rivals Getafe.
League top scorer Cristiano Ronaldo led the charge with two goals for the whites, and Mesut Oezil scored the other goal. Dani Parejo and Juan Albin scored for Getafe, who stay in seventh place.
Real, who had defender Alvaro Arbeloa sent off, now have 44 points from 17 games, two less than Barca, who beat lowly Levante 2-1 on Sunday at home.
The game started with controversy after Real were given a dubious penalty in the 11th minute for a supposed pull on Angel Di Maria. Getafe protested angrily, but Ronaldo calmly made it 1-0 from the spot.
Eight minutes later it was 2-0 to the visitors. Di Maria cleverly set up Oezil, and the German playmaker rounded keeper Jordi Codina and scored from a tight angle.
Dani Parejo pulled a goal back for Getafe in the 29th minute with a fierce drive, after skipping past Alvaro Arbeloa and Lassana Diarra. But Real remained in control, and Ronaldo made it 3-1 in the 57th minute after chaos in the Getafe defence.
However, Arbeloa picked up a second yellow card nine minutes from time, and the whites were suddenly against the ropes. Albin pulled a second goal back for Getafe four minutes later, taking advantage of an appalling mistake by Marcelo.
Brazil playmaker Kaka came on as a late sub for Real, after eight months out following a knee operation.
Earlier on Monday, Villarreal consolidated their grip on third place with a 2-0 home defeat of lowly Almeria.
The straightforward win - with goals from Jose Catala and Borja Valero - leaves the yellows with 36 points from 17 games, five points above fourth-place Valencia, who beat fifth-place Espanyol 2-1 Sunday. Villarreal are eight points behind Real Madrid.
Defender Catala headed Villarreal into the lead in the 22nd minute, after a near-post free-kick from Borja had rebounded off the Almeria crossbar.
Borja's free-kicks are one of Villarreal's principal weapons this season, and the Spain midfielder made it 2-0 with another one - this time an exquisite shot rather than a centre - in the 58th minute.
Almeria goalkeeper Diego Alves had to pull off three late saves to prevent Villarreal from adding a third. The southerners are now second from bottom with just 13 points.
Atletico Madrid, meanwhile, were being held 0-0 at home by solid Racing Santander, a result that leaves them in sixth place, one point behind Espanyol.
Atletico sorely missed injured star striker Diego Forlan. In addition, Portugal midfielder Tiago limped off with a torn muscle after just 18 minutes.
Even so, the man-of-the-match in the chilly Estadio Calderon was Santander keeper Tono, who defied Atletico with several sharp saves.
In Monday's other early matches, Mallorca thrashed Hercules 3-0 - with goals from Emilio Nsue, Victor Casadesus and Michael Perira - while struggling Zaragoza overcame Real Sociedad 2-1.
Florent Sinama-Pongolle gave Zaragoza an early lead, only for Xabi Prieto to level for Sociedad. In the very last minute, however, supersub Braulio sent La Romareda wild by making it 2-1 after Sociedad keeper Claudio Bravo had failed to hold a shot from Marco
The late win lifts Zaragoza off the bottom for the first time this season and gives them real hope of salvation.
They are now third from bottom, level with Almeria on 13 points, both of them one point above new bottom team Sporting Gijon.