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
-
DAMC, Free Food Company, to distribute 10,000 packs of food to street kids
19 minutes -
Kwame Boafo Akuffo: Court ruling on re-collation flawed
38 minutes -
Samuel Yaw Adusei: The strategist behind NDC’s electoral security in Ashanti region
40 minutes -
I’m confident posterity will judge my performance well – Akufo-Addo
52 minutes -
Syria’s minorities seek security as country charts new future
2 hours -
Prof. Nana Aba Appiah Amfo re-appointed as Vice-Chancellor of the University of Ghana
2 hours -
German police probe market attack security and warnings
2 hours -
Grief and anger in Magdeburg after Christmas market attack
2 hours -
Baltasar Coin becomes first Ghanaian meme coin to hit DEX Screener at $100K market cap
3 hours -
EC blames re-collation of disputed results on widespread lawlessness by party supporters
3 hours -
Top 20 Ghanaian songs released in 2024
3 hours -
Beating Messi’s Inter Miami to MLS Cup feels amazing – Joseph Paintsil
3 hours -
NDC administration will reverse all ‘last-minute’ gov’t employee promotions – Asiedu Nketiah
4 hours -
Kudus sights ‘authority and kingship’ for elephant stool celebration
4 hours -
We’ll embrace cutting-edge technologies to address emerging healthcare needs – Prof. Antwi-Kusi
4 hours