Samuel Chukwueze’s Villarreal suffered a heavy defeat as Lionel Messi scored his first penalty since trying to leave Barcelona.
Chukwueze was in the starting eleven for Villareal before he was replaced by Takefusa Kubo on 74 minutes.
Ansu Fati was the game’s outstanding player and scored Barca’s first two goals, with a first-time finish from a Jordi Alba ball and then a low drive from Philippe Coutinho’s pass.
He won the penalty which Messi scored.
Barca had the game wrapped up by half-time as Pau Torres turned Messi’s cross into his own net.
Unai Emery’s Villarreal offered little opposition, with their only shot on target coming in the final minute.
Messi is the sixth player to score a goal in 17 different La Liga seasons, joining Real Madrid’s Sergio Ramos, who joined that club on Saturday.
Summer signings Miralem Pjanic, Francisco Trincao and Pedri all made their debuts in the second half.
The result means Barcelona are in 10th place in La Liga while Villareal are in eight position on four points.