Real Madrid missed the chance to make the most of LaLiga title rivals Atletico having their match postponed by snow after being held to a goalless draw at struggling Osasuna.
With the Spanish capital hit by the wintery blast of Storm Filomena, Atletico's clash against Athletic Bilbao had been postponed.
Los Blancos, though, were left frustrated in freezing conditions at El Sadar, where Karim Benzema and captain Sergio Ramos both had goals disallowed for offside.
Atletico are still a point clear, now having played three matches less, while Osasuna stay 19th following a fourth successive league draw.
Barcelona moved up to third with a comfortable 4-0 win at Granada, who finished with 10 men.
Antoine Griezmann and Lionel Messi each scored twice as Ronald Koeman's men extended their unbeaten run to eight matches.
Granada had Jesus Vallejo sent off late on for tripping Barca substitute Martin Braithwaite on the edge of the penalty area.
Youssef En-Nesyri scored a hat-trick as Sevilla beat Real Sociedad 3-2.
In an action-packed opening 15 minutes, Moroccan En-Nesyri put the hosts ahead from close range, before an own goal from Diego Carlos swiftly levelled things up.
En-Nesyri, though, struck again in the seventh minute with a solo effort, but Sweden forward Alexander Isak made it 2-2 from a corner in the 14th minute.
En-Nesyri had the final say when he fired Sevilla back in front at the start of the second half.
Sevilla sit sixth, level on 30 points with Real Sociedad, but have three games still in hand.
In Ligue 1, Mauricio Pochettino delivered his first win in charge at Paris St Germain with a 3-0 home victory over Brest.
In-form Moise Kean, on loan from Everton, opened the scoring in the 16th minute with a header for his ninth goal of the campaign.
PSG, who had drawn 1-1 against St Etienne last time out, finally settled matters late on through Mauro Icardi (81) and a long-range effort by substitute Pablo Sarabia (83).
The gap to Lyon is now down to just one point after the leaders had to fight back to earn a 2-2 draw at Rennes.
Clement Grenier (20) and Benjamin Bourigeaud (55) had seemingly put the home side in control, with Lyon appearing set to see their 15-game unbeaten run end at Roazhon Park.
However, after Jason Denayer saw a goal ruled out by VAR for handball, Lyon recovered when Memphis Depay volleyed in his 11th goal of the season in the 79th minute. The Dutchman then crossed for Denayer to head in the equaliser three minutes later.
Third-placed Lille won 1-0 away to Nimes, with a first-half goal from Burak Yilmaz, and remain level on points with PSG.
Elsewhere, Monaco beat Angers 3-0 to move fourth, while Marseille were held to a goalless draw at strugglers Dijon.
Strasbourg won 1-0 at Lens, Remi Oudin scored twice as Bordeaux beat relegation-battlers Lorient 2-1 and John Boye's late goal gave Metz a 1-1 home draw against Nice.
It finished 1-1 between Montpellier and Nantes, with Boulaye Dia scoring twice as Reims beat Saint-Etienne 3-1.
Borussia Dortmund scuppered RB Leipzig's hopes of going top of the Bundesliga with a 3-1 win at the Red Bull Arena.
Leipzig failed to capitalise on Friday night's defeat for leaders Bayern Munich as Jadon Sancho struck early in the second half before Erling Braut Haaland's late double wrapped up an impressive away win.
Alexander Sorloth scored a late consolation for the home side, who remain two points adrift, while Dortmund stay fourth – but now just three behind Leipzig.
American teenager Matthew Hoppe scored a hat-trick as Schalke collected a first league win in 31 games to move off the bottom after beating Hoffenheim 4-0.
Schalke, now under their fourth manager of the season in Christian Gross, avoided equalling Tasmania Berlin's longest run without a win in the German top-flight, which has stood since the 1965-66 campaign.
Midfielder Amine Harit scored a late fourth goal for the hosts, who are now four points from safety.
A late goal from Patrik Schick helped third-placed Bayer Leverkusen come from behind to draw 1-1 against Werder Bremen, who went in front through Omer Toprak, to end a run of successive defeats.
Mainz were beaten 2-0 at home by Eintracht Frankfurt, a third straight loss, as Andre Silva scored a penalty in each half.
Wolfsburg had midfielder Maximilian Arnold sent off early in the second half at Union Berlin, but battled to a 2-2 draw, while Freiburg completed a 5-0 home thrashing of Cologne.
AC Milan moved four points clear at the top of Serie A with a 2-0 home win over Torino.
Rafael Leao put the Rossoneri in front after 25 minutes, with Franck Kessie (35) adding another from the penalty spot following a lengthy VAR review before Zlatan Ibrahimovic made a late substitute appearance following a thigh problem.
Title rivals Inter Milan and Roma play each other on Sunday.
Atalanta won 4-1 at Benevento to edge ahead of Juventus into fourth place, while relegation-battlers Genoa beat Bologna 2-0.