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.