Real Madrid were held to a shock goalless draw by struggling Cadiz on Sunday in La Liga.
Carlo Ancelotti’s side dropped their first points since October after Sunday’s stalemate at the Bernabeu.
They extended their lead at the top of La Liga to six points but second-placed Sevilla now have a game in hand. Second-bottom Cadiz grabbed a valuable point in their fight against the drop.
It was a gutsy performance by the southern club at the league leaders as they survived a second half in which Real bombarded Jeremias Ledesma’s goal without finding the net.
Third-placed Real Betis slipped to a 3-2 defeat at Athletic Bilbao thanks to Oscar De Marcos’ late winner.
Inaki Williams opened the scoring after just two minutes before Juanmi quickly levelled. Nabil Fekir put Betis ahead only for Williams to make it 2-2 and De Marcos’ goal snatched the points in the 89th minute.
Getafe breathed life into their survival chances after Dario Poveda’s stoppage-time winner against Osasuna.
They climbed out of the relegation zone thanks to Poveda’s late header in the 1-0 win which lifted them above the bottom three on goal difference.
Grenada beat Mallorca 4-1 to move closer to their visitors in mid-table. Jorge Molina’s hat-trick and Antonio Puertas’ goal eased them to victory.
Serie A: Milan beaten by Napoli
In Italy, AC Milan missed the chance to close the gap to Inter Milan at the top of Serie A after losing 1-0 to Napoli.
The visitors leapfrogged Milan into second with both teams four points behind Inter thanks to Elif Elmas’ winner in the San Siro. The hosts had a stoppage-time leveller from Franck Kessie ruled out for offside.
Fiorentina came from 2-0 down to draw 2-2 with Sassuolo and move sixth. Dusan Vlahovic and Lucas Torreira rescued a point after Gianluca Scamacca and Davide Frattesi put the visitors in control. Cristiano Biraghi was sent off for Fiorentina but they held on.
Sampdoria drew 1-1 with Venezia after Thomas Henry’s late leveller cancelled out Manolo Gabbiadini’s first-minute strike.
Torino beat Verona 1-0 thanks to Tommaso Pobega’s goal after Verona had Giangiacomo Magnani dismissed.
Spezia drew 1-1 with Empoli to earn a point in their battle against the drop but extended their winless run to eight and sit three points above the drop zone.
Bundesliga: Freiburg beat Leverkusen
Substitute Kevin Schade scored late as Freiburg beat Bayer Leverkusen 2-1 to leapfrog the visitors and move into third place ahead of the Bundesliga’s winter break.
Freiburg profited from some lax defending in the 84th minute as Ermedin Demirovic was able to cross without pressure and Schade nipped ahead of his marker to beat Leverkusen goalkeeper Luk Hrdeck at the near post.
Freiburg’s Vincenzo Grifo opened the scoring with a penalty before Charles Aranguiz equalised in first-half injury time for Leverkusen.
Freiburg have a one-point lead over fourth-placed Leverkusen and Hoffenheim.
Anthony Modeste scored a late goal to give Cologne a 1-0 win over Stuttgart in the last Bundesliga game before the winter break.
Kingsley Schindler crossed for the French striker to head the winner in the 88th minute and set off a Christmas party among home fans. Their patience had been tried by two disallowed goals early on, the first for an unintended handball, the second through VAR for a marginal offside call.
The win lifted Cologne to eighth place at the halfway stage.