Two goals from Robert Lewandowski in the 30th and 34th minute set Barca on their way, and Ansu Fati netted from close range after Ferran Torres had hit the post in the 38th minute to wrap the game up.
Lewandowski’s first goal saw him control a pass from Jordi Alba before striking home, while his second was a measured shot into the far corner of the Villarreal goal, reports Xinhua.
Barca coach Xavi Hernandez rang the changes with Marcos Alonso playing in central defence, while Torres, Gavi and Fati all came into the side, with Sergio Busquets and Eric Garcia among those dropping to the bench.
The home side began by controlling the ball, with Fati bringing Villarreal keeper Geronimo Rulli into action, but Villarreal also threatened on the break with Jackson Martinez and then Arnaut Danjuma giving the home fans some nervous moments.
Barca’s next game is on Sunday against Athletic Bilbao.
In Thursday’s other games, Almeria survived a second-half fightback to cling on for a 3-2 win at home to Girona.
Almeria looked to be cruising to an easy win after first-half goals from Leo Baptistao, El Bilal Toure, and Adrian Embarba, but were left clinging on after Rodrigo Riquelme pulled a goal back in the 47th minute and Cristhian Stuani netted a penalty with seven minutes to play.
Girona thought they had snatched a point in injury time, but Yangel Herrera’s 96th-minute effort was ruled out for offside.
Elsewhere, Ante Budimir’s 55th-minute header gave Osasuna a 1-0 win at home to Espanyol to end their run of three games without a win.