After coming on strong late to defeat struggling Getafe 5-2, Lionel Messi scored a brace to keep Barcelona five points off the top spot with a game in hand.
Despite Clement Lenglet’s own goal bringing Getafe level, a Sofian Chakla’s own goal and a second Messi goal seemed to have secured the points for Barca.
Enes Unal’s 69th-minute penalty cut the lead to one point, but Ronald Araujo’s two goals in the final four minutes and an Antoine Griezmann penalty sealed the victory.
Atletico Madrid reclaimed first place in La Liga with a 2-0 victory over relegation-threatened Huesca.
After their victory at Cadiz on Wednesday, Diego Simeone’s side had seen city rivals Real climb above them into first place on the basis of their head-to-head record.
Marcos Llorente played a key role in Atletico’s victory, setting up Angel Correa for the game’s first goal just before halftime and even assisting Yannick Carrasco’s 80th-minute goal.
Real Sociedad beat Celta Vigo 2-1 to end a five-game losing streak in the table, while Granada defeated bottom-placed Eibar 4-1.
In Italy, ten-man Atalanta stretched their unbeaten streak to six games but was held to a 1-1 draw at Roma, missing out on a chance to climb into the second position in Serie A.
Ruslan Malinovskyi put the visitors ahead early, but Atlanta full-back Robin Gosens was sent off for a second yellow card, and former Atlanta midfielder Bryan Cristante equalized from a long distance.
Napoli beat Lazio 5-2 thanks to a penalty from Lorenzo Insigne in the seventh minute, with goals from Matteo Politano, Insigne again, and Dries Mertens putting the hosts up 4-0 just after the hour mark.
Ciro Immobile and Sergej Milinkovic-Savic gave the hosts hope, but Victor Osimhen’s goal in the 80th minute secured Napoli’s victory.