Barcelona restored their four-point lead over Real Madrid at the top of La Liga with an entertaining victory over 10-man Villarreal.
In a breathless opening, Hansi Flick’s side took a 12th-minute lead against the run of play when Raphinha converted from the penalty spot after being brought down in the penalty area by Santi Comesana.
Villarreal, who had won their last six La Liga games, were reduced to 10 men in the 39th minute when former Chelsea youngster Renato Veiga was shown a straight red card for a rash challenge from behind on Lamine Yamal.
The Barcelona teenager all but ended the game as a contest in the 63rd minute, poking home calmly from close range after a scramble in the penalty area.
Fourth-placed Villarreal will have been frustrated not to have taken an early lead at the Estadio de la Ceramica after creating several early opportunities prior to Raphinha’s opener.
Former Arsenal forward Nicolas Pepe headed wide from close range, while ex-Newcastle frontman Ayoze Perez had a goal-bound strike deflected off target before sending a tame shot into Joan Garcia’s arms from the edge of the box.
Raphinha was unfortunate not to double his – and Barcelona’s – tally in the first half when he rattled the crossbar with a venomous effort from the edge of the penalty area.
However, the home side thought they had restored parity before half-time when Jules Kounde turned Sergi Cardona’s low cross into his own net – only for the goal to be ruled out for offside against the Villarreal full-back.
Pepe also struck the bar in a one-on-one with Barcelona goalkeeper Garcia, but that goal too would have been disallowed after the Ivorian mistimed his run from Dani Parejo’s pass.
The second period was a less frantic affair as Barcelona looked to press home their numerical advantage, and Villarreal goalkeeper Luiz Junior needed to be at full stretch to prevent Fermin Lopez from finding the bottom corner not long after the restart.
Yamal settled the outcome, however, poking the ball into the far corner for his ninth goal of the season in all competitions.
Georges Mikautadze was then denied in a one-on-one with Garcia with 13 minutes remaining, but Barca comfortably saw out the final stages to stretch their winning La Liga run to eight games.
They return to action after the winter break against city rivals Espanyol on Saturday, 3 January (20:00 GMT), while Villarreal travel to Elche earlier that day (17:30 GMT).