Villarreal piled the pressure on under-fire Real Madrid coach Zinedine Zidane as they snatched a 1-0 win over the struggling LaLiga champions at the Bernabeu.
Real reached the quarter-finals of the Copa del Rey - where they will face Leganes - in midweek, but started the day 16 points behind rivals Barcelona in the league.
And that massive gap remained in tact after a sublime finish from Pablo Fornals finished off an 87th-minute counter-attack from the Yellow Submarine, who had goalkeeper Sergio Asenjo to thank for a number of vital saves.
After Gareth Bale saw his header correctly ruled out for offside, Asenjo saved superbly from Marcelo’s thunderous drive and Ronaldo’s free-kick, before also denying Ronaldo from close range on the stroke of half-time.
Asenjo made a number of more routine saves in the second period before the visitors cleared a late Real corner and set Denis Cheryshev clear down the left.
The half-time substitute found Enes Unal in the centre of the penalty area and, although Unal’s shot was blocked by the onrushing Keylor Navas, it landed for Fornals to chip a first-time shot over the despairing goalkeeper.
In the early kick-off, Michael Olunga scored a 22-minute hat-trick on an historic day for Girona as they thrashed bottom club Las Palmas 6-0 at Montilivi.
Kenya striker Olunga, who is on loan from Chinese club Guizhou Zhicheng, struck in the 57th, 70th and 79th minutes to become the first player to record a top-flight treble for Girona.
Yeah, that's right, three! ⚽️⚽️⚽️🇰🇪January 13, 2018
The win was also Girona’s biggest in LaLiga - this season being their first in the division - and most comprehensive victory in any competitive match in four years.
Cristhian Stuani’s penalty midway through the first half was all that separated the teams at the interval, but Girona went to town after the break as Las Palmas crumbled to a 14th defeat in 19 league matches this term.
Borja Garcia (64 minutes) and Cristian Portu (74) were Girona’s other scorers.
Florian Thauvin missed a penalty, scored a header, set up a goal and hit the crossbar from 50 yards as Marseille won 3-0 at Rennes in Ligue 1 on Saturday.
The former Newcastle winger was Marseille's driving force despite his early spot-kick being saved, with Valere Germain and Morgan Sanson also scoring for the south-coast club.
Thauvin saw his fiercely-struck penalty impressively tipped wide by Tomas Koubek in the 28th minute, but Marseille made the breakthrough seven minutes later. Thauvin's clever pass sliced open the home defence and Germain slotted in.
Sanson cracked home the second goal just before the break after collecting a pass from strike partner Germain, and Thauvin netted with a looping header seven minutes from time.
There was almost a stunning fourth goal in stoppage time as Thauvin cracked a left-footed strike from just inside the Rennes half against the woodwork, with Koubek stranded.
Marseille's win lifted them, temporarily at least, level on points with second-placed Monaco and third-placed Lyon. Monaco were in action against Montpellier on Saturday evening, with Lyon facing Angers on Sunday.
Naby Keita was among the scorers as RB Leipzig moved above Schalke and into second place in the Bundesliga with a 3-1 home victory over the Gelsenkirchen outfit.
Amid continued talk about the possibility of his move to Liverpool being brought forward from the summer to this month, Keita gave the hosts the lead in the 41st minute with a strike from outside the box that took a considerable deflection off Naldo.
That was four minutes after Leipzig's Jean-Kevin Augustin had had a penalty saved by Ralf Fahrmann.
Naldo equalised with a header in the 55th, then lost possession in the 69th, with the resulting Leipzig attack seeing the ball worked to substitute Timo Werner, who tucked it home.
Werner then provided the assist two minutes later from which Bruma fired in as Schalke sunk to their first defeat since September.
Earlier on Saturday, struggling Stuttgart ended a run of four straight league losses with a 1-0 home triumph over Hertha Berlin.
Mario Gomez, who rejoined the Swabian club this month from Wolfsburg, went down in the area under a challenge from Niklas Stark 12 minutes from time and, while the Germany striker was appealing for a penalty, Hertha midfielder Stark somehow dispatched a deft lob over his own goalkeeper for the game's only goal.
The result at the Mercedes-Benz Arena lifted Hannes Wolf's side four points clear of the relegation zone.
Elsewhere, Niclas Fullkrug scored a hat-trick as Hannover battled from two goals down to beat Mainz 3-2.
Yoshinori Muto opened the scoring for the visitors on 26 minutes and Alexander Hack doubled their advantage just after the half-hour.
But Fullkrug kicked off the comeback in the 33rd minute and then equalised via the penalty spot five minutes later, after Felix Klaus had gone down under the challenge of Nigel de Jong.
And the turnaround was complete 14 minutes from time when Ihlas Bebou's effort deflected off Stefan Bell and fell kindly for Fullkrug, who took a touch to steady himself and then lashed home an unstoppable finish.
South Korea midfielder Koo Ja-cheol settled matters on the stroke of half-time as Augsburg edged past second-bottom Hamburg 1-0.
Eintracht Frankfurt were held to a 1-1 home draw by Freiburg. Sebastien Haller put the hosts ahead just before the half-hour mark, and Robin Koch secured a share of the spoils for the visitors six minutes after the interval.
Hoffenheim had to settle for a 1-1 draw at Werder Bremen. Benjamin Hubner put the visitors ahead six minutes before half-time, but Czech wing-back Theodor Gebre Selassie restored parity just after the hour mark.
On Friday evening leaders Bayern Munich, who are 13 points clear of Leipzig, won 3-1 at Bayer Leverkusen as the Bundesliga resumed after its winter break.