Copa del Rey: Barcelona 3 Villarreal 1
Goals from Lionel Messi, Andres Iniesta and Gerard Pique secured victory for the Catalan giants, although Manuel Trigueros momentarily stunned the Camp Nou with a stunning long-range effort for the visitors.
Messi opened the scoring after 41 minutes following superb work from Luis Suarez, the Argentine netting his 11th goal of 2015 in all competitions.
Despite all of Barca's dominance, though, they could not stop Villarreal scoring for a 28th consecutive game in all competitions as Trigueros fired home a vicious strike early in the second half.
But Iniesta restored the lead for Luis Enrique's side one minute later after more good work from Suarez, before Pique added a third with a back-post header.
Victory gives Barca – who saw Neymar have a second-half penalty saved - the advantage ahead of the second leg at El Madrigal on March 4.
After their scintillating 5-2 victory over Athletic Bilbao on Sunday, Barcelona were quickly into their stride, with Messi at the heart of their play.
He played a neat one-two with Suarez and fired an early effort at goal, but Villarreal goalkeeper Sergio Asenjo was equal to the task.
Barca were relentless in their quest for a goal, though, and after another chance passed Messi by, he eventually broke the deadlock four minutes before the break.
Suarez caught Mateo Musacchio on the ball and played a perfectly weighted pass into his team-mate, who swept the ball past Asenjo with a clever finish.
Having spent much of the first half on the back foot, Villarreal went close to levelling in stoppage time, but Marc-Andre ter Stegen made a superb save to deny Luciano Vietto.
That late effort should have served as a warning to Barca but Villarreal did square things up in the 48th minute, as Trigueros lashed home a stunning 25-yard strike that swerved wickedly to give Ter Stegen no chance.
But parity lasted just one minute as Iniesta and Suarez exchanged a number of passes before the former curled home from 12 yards.
Pique extended their advantage 19 minutes into the second half as he rose above Musacchio at the back post to head home Messi's corner from the right.
Having contributed to Barca's opening goal, things got worse for Musacchio after 70 minutes when he was penalised for handling inside the area, but he was let off as Asenjo kept out Neymar's spot-kick.
That save could prove handy in the second leg but Barca will be the happier of the two sides as they moved closer to winning the tournament for a record 27th time and avenging last season's heart-breaking final defeat to arch-rivals Real Madrid.