Barça couldn’t have started their match at the Estadio de la Cerámica any better, Pau Torres putting the ball through his own net inside three minutes.
A swift attack from the Blaugranes that involved Leo Messi and Luis Suárez saw the ball moved out to Jordi Alba and his low cross confused Torres who was being put under early pressure from Antoine Griezmann.
Villarreal were finding it difficult to get out of their own half thanks to the high pressing game that Barça were playing, however, Gerard Moreno fired home after a swift break on 12, bringing the scores level.
With no let-up in the action, Suárez almost put the visitors ahead again in the very next attack, as the game continued to open up. Just before the 20-minute mark, a super run by Messi played in the Uruguayan and his glorious first touch saw the ball curl into the top corner to give Barça a 2-1 lead.
The end-to-end action continued with Barça indebted to Marc-André ter Stegen who saved well from Carlos Bacca. before Sergio Asenjo palmed a fierce Arturo Vidal shot wide.
A stunning chip from Antoine Griezmann via another Messi assist was a goal of the season contender which ended an incredibly exciting first half.
The pace of the match was always going to slow in the second period, and Villarreal’s half-time substitution indicated that they were going to pack the midfield and make life more difficult for Barça.
On 52, Griezmann almost returned the favour of an assist to Messi, the Argentinian’s chip collected by Asenjo. Aside from that, chances were much harder to come by but both sides continued to play on the front foot.
A beautiful break on 65 almost ended with a goal for Vidal, and as Villarreal tried to clear their lines, Jordi Alba also went close. Only three minutes later, more chaotic play by the hosts looked to have ended with Messi scoring his 23rd of the season, however, by virtue of Vidal’s heel being offside, VAR chalked the goal off.
Thereafter, a more congested midfield took the sting out of the game until Ansu Fati’s smart finish on 86 - Barça's 9,000th official goal - allowed them to see out the final few minutes with ease.
There was still time for Messi to hit the bar from an injury-time free-kick and Martin Braithwaite to see his powerful downward header pushed aside thanks to a flying save from Asenjo.