Lionel Messi, with his 500th Barcelona goal, and Luis Suarez saved the Spanish champions from a second defeat in six days as they came from behind to win 2-1 at Sevilla.
Victory on Sunday keeps Barca just two points adrift of Real Madrid, who were 3-0 victors over Leganes thanks to a double from Gareth Bale.
Madrid also announced that Cristiano Ronaldo will extend his contract with the European champions until 2021 on Monday.
Messi inspired a spirited Barca fightback fresh from a 3-1 defeat at Manchester City in the Champions League on Tuesday after a first-half dominated by Sevilla.
“There is no one like him and our objective as a team is to look for Leo as much as possible,” Barca boss Luis Enrique said. “The capacity Messi has to play in any position and interpret what is happening on the field is laudable.”
With the cast of the Game of Thrones among those watching on in Seville, the game got off to a frantic start.
The hosts had two shots on goal inside 50 seconds, but from a Sevilla corner Barca broke forward at lightning speed and Suarez’s effort from Neymar’s layoff was brilliantly saved by Sergio Rico.
Sevilla remained on the front foot for most of the first-half and got their reward on 15 minutes when Pablo Sarabia’s pass bamboozled Sergi Roberto and Vitolo charged through to open the scoring.
Sarabia passed up a great chance to make it two when he took the bizarre decision to backheel the ball towards the edge of the area when he had just Marc-Andre ter Stegen to beat.
Barca made Sevilla pay with another brilliant counter-attack to level two minutes before half-time as this time Messi curled Neymar’s pass into the bottom corner.
The goal was Messi’s 500th for Barca including friendlies, but he should have had more after the break as only a brilliant block from Mariano and save from Rico prevented the Barca captain turning the game around.
Messi turned provider for the winner just after the hour mark as he teed up Suarez to drill the ball low past Rico.
Rico produced an incredible stop to prevent Suarez making it 3-1, but a huge error from Ter Stegen at the other end nearly cost Barca the win as he flapped at a corner and Steven N’Zonzi headed inches wide the goal gaping.
Earlier, Bale rounded off a fine week after signing one of the most lucrative deals in football history himself to keep him tied to Real until 2022.
The Welshman earned his bumper new wage as he struck twice in seven first-half minutes before Alvaro Morata added a third 14 minutes from time.
Bale outsprinted the Leganes defence as he latched onto Isco’s through ball and rounded Jon Ander Serantes before slotting home from a narrow angle.
His second was a scrappier finish as Bale pounced on a loose ball inside the area from Toni Kroos’s free-kick to bundle home from close range.
By contrast, Ronaldo endured another frustrating afternoon as he was kept scoreless for the fifth time in eight La Liga appearances this season and didn’t even manage a shot on target.
The Portuguese has now gone five games without scoring at the Bernabeu — his longest drought since joining Real seven years ago.
“There is nothing wrong, he is not worried,” said Real boss Zinedine Zidane about Ronaldo’s slump in form.
“He looks good, he is motivated, he likes to scores goals and even more so in this stadium, but he is calm.”
Morata completed the scoring for Zidane’s men when he collected Kroos’s pass before firing home at the near post.
A fine day for Madrid was rounded off by the return of Luka Modric from injury and they even kept a first clean sheet in 11 matches to stretch their unbeaten run in all competitions to 28 games.
Villarreal moved up to third with a 2-0 win over Real Betis.
Meanwhile, Valencia’s struggles continued as a 2-1 defeat at Celta Vigo leaves them just a point above the relegation zone.