Atletico Madrid missed the chance to go eight points clear at the top of the LaLiga table after they were held to a goalless draw at nearby Getafe, despite playing the last 20 minutes with an extra man following Allan Nyom 's dismissal.
Instead, their rivals Real Madrid now sit six points behind them in second place after beating Elche 2-1, while Barcelona would close the gap to four if they win their game in hand against bottom club Huesca on Monday.
Karim Benzema completed his brace with a stoppage-time winner as Real came from behind to earn all three points.
Elche had taken the lead in the 61st minute when Dani Calvo headed home via the crossbar following a corner.
But the hosts hit back as Benzema equalised with a close-range header in the 73rd minute.
The Frenchman then snatched the winner at the death as he slotted Rodrygo 's assist into the bottom corner.
Struggling Alaves blew the opportunity to move out of the bottom three after being reduced to 10 men and conceding late in their 1-1 draw with Cadiz.
Former Newcastle forward Joselu broke the deadlock from the penalty spot in the 36th minute, but after Manu Garcia picked up a second yellow card in the 81st minute, Cadiz equalised through an Alex Fernandez penalty three minutes later.
Meanwhile, Osasuna and Real Valladolid played out a 0-0 draw in Saturday's other LaLiga game.
Robert Lewandowski moved joint-second in the all-time Bundesliga scorers list as Bayern Munich beat Werder Bremen 3-1.
After Leon Goretzka and Serge Gnabry had given the visitors a two-goal half-time advantage, Lewandowski moved level with Klaus Fischer on 268 Bundesliga goals when he put Bayern 3-0 up in the 67th minute, having already clattered the woodwork on multiple occasions.
Niclas Fullkrug scored a consolation goal five minutes before the end but they could not do anything to stop Bayern from recording three points to stretch their lead at the summit to six before nearest challengers RB Leipzig's game against Eintracht Frankfurt on Sunday.
Borussia Dortmund moved up to fifth in the table as 16-year-old Youssoufa Moukoko scored his third goal of the season in a 2-0 win over Hertha Berlin.
Julian Brandt had opened the scoring in the 54th minute and, after the visitors had Vladimir Darida sent off, substitute Moukoko scored in the closing stages.
A late Robin Quaison winner earned relegation-battlers Mainz a vital 1-0 win over Freiburg, while Union Berlin beat Cologne 2-1 as second-half goals from Max Kruse (penalty) and Christopher Trimmel cancelled out Ondrej Duda 's first-half penalty.
Bottom club Schalke were dealt another blow as a Shkodran Mustafi own goal and efforts from Wout Weghorst, Ridle Baku, Josip Brekalo and Maximilian Philipp condemned them to a 5-0 defeat at Wolfsburg.
Former Sunderland man Wahbi Khazri scored the only goal in the second half as St Etienne beat Angers 1-0 to ease their relegation fears.
Marseille climbed to fifth after goals from Arkadiusz Milik, Florian Thauvin and Mickael Cuisance saw them beat Brest 3-1, with Lilian Brassier scoring for the visitors.
In Serie A, Dusan Vlahovic scored a superb first-half hat-trick as Fiorentina ran out 4-1 winners at Benevento to move up towards mid-table.
The Serbian broke the deadlock in the eighth minute following a quick break from Franck Ribery before knocking in a rebound from a 26th-minute corner.
Vlahovic completed his treble just before half-time with a fine 25-yard curling strike.
Artur Ionita pulled a goal back for the hosts but Valentin Eysseric wrapped things up on the counter-attack with a quarter of an hour left.
The late match saw Genoa and Udinese draw 1-1.
Goran Pandev fired the hosts ahead early on, the goal given following a VAR review, before Rodrigo De Paul equalised from the penalty spot on the half hour.
Earlier on Saturday, Sassuolo beat Hellas Verona 3-2.
Manuel Locatelli's early opener for the home side was cancelled out by Darko Lazovic as the visitors equalised just before half-time.
Filip Djuricic made it 2-1 with a low strike, only for Federico Dimarco to level things up again with 11 minutes left.
Substitute Hamed Traore, though, secured all three points when he slotted in from a corner just a couple of minutes later.