Ousmane Dembele scored a first-half winner as Barcelona moved three points clear at the top of La Liga by edging to victory against Atletico Madrid.
Dembele scored with a sweet side-foot finish following Gavi’s lay-off and also hit a post in the second half.
Atletico could have levelled in added time but Antoine Griezmann’s effort was cleared off the line by Ronald Araujo.
Both sides finished with 10 men after Stefan Savic and Ferran Torres were dismissed for a scuffle.
The two former Manchester City players grappled each other off the ball, ending up on the turf, and were shown straight red cards.
Xavi’s side fully capitalised on Real Madrid’s defeat by Villarreal on Saturday, opening up a cushion at the summit having lost just once in the league this season.
Diego Simeone was leading Atletico for a La Liga record 418th game, the most consecutive matches in charge of a single club in Spain’s top flight.
But the Argentine saw his side fall to a fifth loss in 16 games and any hopes of winning the title look to have been extinguished with Atletico lying fifth, 14 points adrift of the leaders.
Dembele’s goal was the culmination of a slick team move as Pedri’s burst of acceleration fed Gavi, who laid the ball off for the France winger to finish into the bottom corner.
A second goal could have followed quickly but Pedri’s lofted effort from Jose Gimenez’s blind backpass was clawed out by Jan Oblak.
Atletico were chasing the game in the second half as they looked to salvage a point, but Griezmann’s rising drive was superbly tipped over the crossbar by Marc-Andre Ter Stegen.
When he did beat the Germany goalkeeper in the 94th minute, Araujo was positioned in the right place to clear it off the line.
Torres had a goal ruled out for offside earlier in the second period and, perhaps frustrated, was then involved in a fracas with Savic in final few minutes that saw the pair dismissed.
- 16MolinaBooked at 85mins
- 15SavicBooked at 90mins
- 23MandavaSubstituted forReguilónat 82′minutes
- 6KokeSubstituted forLemarat 73′minutes
- 34BarriosSubstituted forKondogbiaat 64′minutes
- 21CarrascoSubstituted forMorataat 65′minutes
- 7João FélixSubstituted forCorreaat 73′minutesBooked at 79mins
- 5De Paul
- 1ter Stegen
- 4AraújoBooked at 56mins
- 15ChristensenBooked at 82mins
- 28BaldeSubstituted forAlonsoat 81′minutes
- 30GaviSubstituted forRaphinhaat 73′minutesBooked at 87mins
- 5BusquetsSubstituted forRobertoat 81′minutes
- 21F de JongSubstituted forKessieat 58′minutes
- 10Ansu FatiSubstituted forF Torresat 57′minutesBooked at 90mins
- 11F Torres
- 13Peña Sotorres
- José Luis Munuera Montero
Match ends, Atletico Madrid 0, Barcelona 1.
Second Half ends, Atletico Madrid 0, Barcelona 1.
Attempt missed. 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. Conceded by Sergi Roberto.
Attempt blocked. Antoine Griezmann (Atletico Madrid) left footed shot from outside the box is blocked.
Foul by Franck Kessie (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 Ángel 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 violent conduct.
Ferran Torres (Barcelona) is shown the red card for violent conduct.
Delay over. They are ready to continue.
Delay in match (Barcelona).
Pedri (Barcelona) wins a free kick in the attacking half.
Foul by Thomas Lemar (Atletico Madrid).
Attempt missed. Thomas Lemar (Atletico Madrid) left footed shot from outside the box is close, but misses to the right. Assisted by Marcos Llorente.
Raphinha (Barcelona) is shown the yellow card.
Raphinha (Barcelona) wins a free kick in the defensive half.
Foul by Marcos Llorente (Atletico Madrid).