Antoine Griezmann scored twice as Barcelona drew level on points with second-placed Real Madrid by beating Villarreal in an incident-packed game.
Villarreal took the lead through Samuel Chukwueze's composed finish before Griezmann equalised moments later with a quality finish.
The France forward then pounced on a poor back pass by Juan Foyth, on loan from Tottenham, to put Barca ahead.
Villarreal's Manu Trigueros was sent off for a foul on Lionel Messi.
The result put Barcelona two points behind leaders Atletico Madrid, who are away to Athletic Bilbao in the late game on Sunday (20:00 BST).
Ronald Koeman's side, who were 12 points off the top earlier in the season, have one game in hand on Real Madrid.
One of Barca's remaining six league games is at home to Atletico on 8 May.
Latest Stories
-
Keta: Police destroy 24 bags of suspected cannabis
1 minute -
Kurt Okraku appointed 2nd Vice President of CAF
7 minutes -
KSrelief centre provides clean water to Ghanaian communities
9 minutes -
ASFC 2025: Ghana boys come from behind to beat Uganda and clinch bronze
14 minutes -
GOC Elective Congress: GFA Gen Sec misses out on GOC Board
41 minutes -
CJ removal saga: Akufo-Addo set a bad precendent with Charlotte Osei – Prof. Agyeman-Duah
2 hours -
I do not agree threshold for a prima facie case against the CJ is low – Barker-Vormawor
2 hours -
Gold Board operations will increase Ghana’s reserve- BoG Governor
2 hours -
There must be serious introspection on petitions to remove the Chief Justice- Prof Agyeman-Duah
2 hours -
Ghana Chief Justice Suspension: Nation Grapples with Separation of Powers
2 hours -
WHO, AMMREN and GHS urge media to champion immunisation during African vaccination week
2 hours -
CJ’s suspension: Why aren’t other judges facing removal? – Ex Deputy A.G. fumes
3 hours -
CJ’s Suspension: Prima facie establishment has no basis – Ex Deputy A.G
3 hours -
ASFC 2025: Ghana U-15 girls promise to ‘kill themselves’ in final against Uganda
3 hours -
Pope Francis: Mourners reminded of his call to ‘build bridges not walls’
3 hours