Barcelona beat third-placed Getafe 2-1 at home to stay on the heels of La Liga title rivals Real Madrid but the champions were made to sweat for all three points by the impressive visitors.
Antoine Griezmann ended his league scoring drought with 33 minutes gone at the Nou Camp, before Sergi Roberto doubled the home side's advantage just six minutes later to leave Getafe facing an uphill task.
Substitute Angel Rodriguez pulled one back for the visitors shortly after the hour mark, and he then had an effort clawed off the line by goalkeeper Marc-Andre ter Stegen.
But, despite a nervy end, Quique Setien's side managed to see out the match to move level on points with Real at the top of the table. Zinedine Zidane's men host Celta Vigo on Sunday.
Getafe have been the surprise package this season and headed into Saturday's encounter just one place behind their opponents following a run of four successive wins.
The visitors thought they had opened the scoring midway through the opening period when Allan Nyom followed up Jorge Molina's saved header to score past ter Stegen, but following a VAR review the strike was chalked off after Nyom was adjudged to have fouled Samuel Umtiti in the build-up.
With 12 minutes remaining until the interval, Griezmann put the home side in front. Lionel Messi's perfect pass found the former Atletico Madrid striker, who made no mistake with his finish, clipping the ball over Getafe keeper David Soria, to
score in the league for the first time since netting in a 4-1 win against Alaves on December 21.
Barcelona appeared to have killed the game after 39 minutes when Roberto scored just the second league goal of his career.
Roberto, whose only other league strike for Barca came in a 2-0 home win against Real Betis in August 2017, converted at the back post following Junior Firpo's cross.
It was Barcelona's eighth league goal of the Setien era, and remarkably it was the first which Messi had neither scored nor assisted.
Getafe boss Jose Bordalas introduced Rodriguez shortly after the break, and the substitute was soon on the scoresheet when he volleyed home Jaime Mata's cross with 66 minutes on the clock.
Moments later, Rodriguez, who has scored eight league goals as a substitute this term, provided the hosts with a real fright when his flicked shot was stopped by ter Stegen, who then prevented Mata from netting the rebound.
Elsewhere, Real Mallorca pulled themselves out of the relegation places with a vital 1-0 win against Alaves while Villarreal beat Levante 2-1. Granada also scored a 96th minute winner to beat Real Valladolid 2-1 in the late kick-off.
Ligue 1 - PSG involved in chaotic 4-4
Paris Saint-Germain drew 4-4 with Amiens in Ligue 1 after coming from 3-0 down to lead before conceding a late equaliser.
Amiens went 3-0 up through goals from Gael Kakuta, Serhou Guirassy and Fousseni Diabate but PSG roared back with four goals of their own.
Ander Herrera started the comeback before Tanguy Kouassi netted a brace and Mauro Icardi tapped home to make it 4-3.
However, Guirassy capped a remarkable match by scoring the equaliser in stoppage time.
Elsewhere, Nice beat Toulouse 2-0 while Nimes were 1-0 winners against Angers. Bordeaux drew 2-2 with Dijon while Nantes and Metz played out a goalless draw.
Bundesliga - RB Leipzig back top
RB Leipzig eased past struggling Werder Bremen 3-0 to reclaim top spot in the Bundesliga, two points ahead of champions Bayern Munich.
Having failed to win in their last four games in all competitions, Leipzig were desperate to bounce back and Lukas Klostermann's 18th-minute goal quickly put them in the driving seat.
Patrik Schick, who had set up Klostermann, then grabbed one himself, heading in his sixth league goal in the 39th minute before Nordi Mukiele latched on to a deep cross to fire in their third goal a minute after the restart.
Leipzig are on 45 points, with Bayern - who are in action against Cologne on Sunday - two behind on 43 points. Former champions Werder, who have now lost eight of their last nine league games, are stuck in 17th place, a point above last-placed Paderborn.
Bayer Leverkusen won a thrilling game against Union Berlin. Two first-half goals saw the score at 1-1 heading into the final ten minutes, with Moussa Diaby putting Bayer ahead in the 83rd minute. Marius Bulter then equalised for Union Berlin four minutes later, but a 94th-minute strike from Karim Bellarabi snatched a 3-2 victory for Bayer.
Wolfsburg also beat Hoffenheim 3-2, Hertha Berlin were 2-1 winners against Paderborn while Augsburg drew 1-1 SC Freiburg. In the late game, Borussia Monchengladbach beat Fortuna Dusseldorf 4-1.
Serie A - Atalanta edge towards Champions League
Atalanta's Mario Pasalic got the winner within seconds of coming off the bench as they took a huge step towards Champions League qualification by beating Roma 2-1.
Edin Dzeko fired the fifth-placed visitors in front at the end of the first half, but Atalanta, who are fourth, found a deserved equaliser through Jose Palomino early in the second.
However, Pasalic stole the show in the 59th minute by curling a sensational strike into the top corner 19 seconds after coming on as a substitute.
The win sees Gian Piero Gasperini's side take control in the race for a top-four finish as Atalanta have 45 points, six ahead of Roma with a better head-to-head record than the capital club.
Earlier, 18th-placed Genoa recorded their first away win of the season with a 3-0 victory at Bologna that moved them within a point of the safety zone as the hosts finished with nine men following the expulsions of Jerdy Schouten and Stefano Denswil.
Lecce also boosted their survival hopes by moving above Sampdoria into 16th place with their third consecutive league victory, defeating SPAL 2-1 on Luigi Di Biagio's debut as coach of Serie As rock-bottom side.