After Ousmane Dembele scored the decisive goal in the first half, Barcelona beat Atletico Madrid and took a three-point lead at the top of La Liga.
Dembele scored with a sweet side-foot finish after Gavi’s lay-off and also hit the post in the second half.
Atletico could have equalized in added time, but Antoine Griezmann’s effort was converted by Ronald Araujo.
Both sides finished with 10 men after Stefan Savic and Ferran Torres were sent off for brawls.
The two former Manchester City players ended up on the turf after grabbing each other off the ball and were shown a straight red card.
Xavi’s side took full advantage of Real Madrid’s defeat to Villarreal on Saturday, opening up a cushion at the summit where they have lost just once in the league this season.
Diego Simeone led Atlético to a La Liga record 418th appearance, the most consecutive appearances for a single club in Spain’s top flight.
But the Argentine saw his side slump to a fifth defeat in 16 games and any hopes of winning the title appeared to be over, leaving them 14 points behind leaders Atlético.
Dembele’s goal was the culmination of a team move as Pedri’s burst of acceleration fed Gavi, who released the ball to the France winger to finish into the bottom corner.
A second goal could have followed soon after but Jan Oblak clawed at Pedri’s blistering effort from Jose Gimenez’s blind backpass.
Atletico chased the game into the second half looking to salvage a point, but Griezmann’s soaring drive was superbly tipped onto the crossbar by Marc-Andre ter Stegen.
After he beat the Germany goalkeeper in the 94th minute, Araujo was perfectly positioned to clear it off the line.
Torres had a goal disallowed for offside early in the second period and, perhaps frustrated, was then involved in a scuffle with Savic in the final few minutes that saw the pair sent off.
- 16MolinaBooked in 85 minutes
- 15SavicBooked in 90 minutes
- 23Mandavasubstituted forReguilonin 82′minute
- 6cokesubstituted forLemarin 73′minute
- 34barriossubstituted forKondogbiain 64′minute
- 21Carrascosubstituted forMoratain 65′minute
- 7Joao Felixsubstituted forKoreain 73′minuteBooked in 79 minutes
- 5D. Paul
- 1ter Stegen
- 4AraujoBooked in 56 minutes
- 15ChristensenBooked in 82 minutes
- 28Baldesubstituted forAlonsoin 81′minute
- 30calfsubstituted forRafinhain 73′minuteBooked in 87 minutes
- 5Busquetssubstituted forRobertoin 81′minute
- 21FD Jongsubstituted forCaseyin 58′minute
- 10Ansu Fatisubstituted forF. Torresin 57′minuteBooked in 90 minutes
- 11F. Torres
- 13Pena Sotores
- JOSE LUIS MUNUERA MONTERO
Game over, Atletico Madrid 0, Barcelona 1.
Second half ends, Atletico Madrid 0, Barcelona 1.
The attempt failed. Geoffrey Kondogbia (Atletico Madrid) left footed shot from the left side of the box is too high. Assisted by Sergio Reguilón.
Corner, Atletico Madrid. Accepted by Sergi Roberto.
Attempt blocked. Antoine Griezmann (Atletico Madrid) left footed shot from outside the box is blocked.
Foul by Frank Casey (Barcelona).
Antoine Griezmann (Atletico Madrid) wins a free kick in the attacking half.
Attempt blocked. Antoine Griezmann (Atletico Madrid) left footed shot from the right side of the six yard box is blocked. Assisted by Angel Correa.
Foul by Marcos Alonso (Barcelona).
Geoffrey Kondogbia (Atletico Madrid) wins a free kick in the defensive half.
Stefan Savic (Atletico Madrid) is shown the red card for a bad foul.
Ferran Torres (Barcelona) is shown the red card for violent conduct.
There was a delay. Ready to continue.
Delay in the match (Barcelona).
Pedri (Barcelona) wins a free kick in the attacking half.
Foul by Thomas Lemar (Atletico Madrid).
The attempt failed. Thomas Lemar (Atletico Madrid) left footed shot from outside the box is close, but misses to the right. Assisted by Marcos Llorente.
Rafinha (Barcelona) is shown a yellow card.
Rafinha (Barcelona) wins a free kick in the defensive half.
Foul by Marcos Llorente (Atletico Madrid).