Angel Correa and Marcos Llorente scored twice apiece to sandwich Yannick Carrasco's strike as Diego Simeone's men, one of the 12 clubs mentioned in reports of a breakaway European Super League, cruised to victory.
Another of those clubs, Real, drew 0-0 at Getafe. Mariano Diaz had an early goal disallowed for offside and another effort cleared off the line, but the hosts hit the woodwork through Jaime Mata and had two strong penalty appeals while Thibaut Courtois made several fine saves.
Fourth-placed Sevilla came from behind early on to beat Real Sociedad. Carlos Fernandez put the hosts ahead inside five minutes but Fernando and Youssef En-Nesyri hit back.
Rodrigo Battaglia's late goal earned Alaves a vital 1-0 win over relegation rivals Huesca while Osasuna moved clear of danger with a 2-0 win over Elche thanks to Kike Barja and a Diego Gonzalez own goal.
Samuel Chukwueze scored twice in Villarreal's 5-1 win at Levante, aided by own goals from Postigo and Ruben Vezo. Gerard Moreno scored the other with Mickael Malsa on target for Levante.
Valencia twice came from behind to draw 2-2 with Real Betis, Goncalo Guedes and a Carlos Soler penalty cancelling out goals from Nabil Fekir and Sergio Canales, while Cadiz drew 0-0 with Celta Vigo.
Juventus fell to fourth in Serie A as opponents Atalanta jumped ahead of them thanks to Ruslan Malinovskyi's late goal in a 1-0 win.
Leaders Inter Milan were held to a 1-1 draw by Napoli, needing a Christian Eriksen equaliser after an own goal by goalkeeper Samir Handanovic.
AC Milan had Gianluca Scamacca's own goal to thank as they beat Genoa 2-1 to stay second. Ante Rebic's opener had been cancelled out by Mattia Destro.
Lazio survived a stirring Benevento fightback to win 5-3.
Leading 3-0 through Fabio Depaoli's own goal, Ciro Immobile and a Joaquin Correa penalty, the hosts were pegged back to 4-3 by Marco Sau, a Nicolas Viola spot-kick and Kamil Glik even as they benefited from a second own goal by Lorenzo Montipo. Immobile scored a fifth on the break deep in stoppage time.
Torino beat Roma 3-1, Antonio Sanabria, Simone Zaza and Tomas Rincon scoring in the second half after Borja Mayoral gave Roma an early lead. The Giallorossi had Amadou Diawara sent off.
Mattias Svanberg scored twice as Bologna beat Spezia 4-1, adding to Riccardo Orsolini's penalty and Musa Barrow's strike after Ardian Ismajli cut the deficit.
David Neres scored a late winner as Ajax beat Vitesse Arnhem 2-1 to win the Dutch Cup.
Ryan Gravenberch's opener was cancelled out by Lois Openda but Vitesse had Jacob Rasmussen sent off four minutes from time and Ajax turned the screw by sending on forward Neres, who tucked away Sebastien Haller's knockdown in stoppage time.
Paris St Germain closed to within a point of leaders Lille in pursuit of their eighth Ligue 1 title in nine years with a dramatic 3-2 win over St Etienne.
It was goalless until the 77th minute, when Denis Bouanga put Les Verts ahead, but Kylian Mbappe sumptuously equalised and his 87th-minute penalty looked like being the winner.
Romain Hamouma equalised in stoppage time but there was still time for Mauro Icardi to head a PSG winner.
Second-placed Monaco beat Bordeaux 3-0 with goals from Kevin Volland, Gelson Martins and Stevan Jovetic while Les Girondins had Tom Lacoux sent off.
Memphis Depay's double, the second a penalty, earned fourth-placed Lyon a 2-1 win at Nantes to bring them just three points behind next week's opponents Lille, who drew with Montpellier on Friday. Nicolas Pallois replied for relegation-threatened Nantes.
Bottom club Dijon were the day's other winners as Fouad Chafik and a Yassine Benzia penalty saw off Nice 2-0, while Brest held fifth-placed Lens 1-1. Gael Kakuta's penalty for Lens cancelled out Yannick Cahuzac's own goal before late red cards for Lens' Steven Fortes and Simon Banza and Brest's Jean Lucas.
Strasbourg had Frederic Guilbert sent off but drew 1-1 at Nimes as Dimitri Lienard cancelled out Renaud Ripart's penalty, while Reims and Metz drew 0-0.
Erling Haaland scored twice in five minutes as Borussia Dortmund beat Werder Bremen 4-1 to sit fifth in the Bundesliga.
The in-demand Haaland's double, the first from a penalty, added to Giovanni Reyna's equaliser after Milot Rashica had put Werder in front. Mats Hummels rounded off the win late on.