Neymar had missed a penalty in Barca’s 3-1 first leg win three weeks ago, but made amends after just three minutes when he turned home Lionel Messi’s cross.
Jonathan dos Santos gave the hosts hope with an equaliser on the night against his old club, but Villarreal’s chances of a famous comeback faded when Tomas Pina was shown a straight red card for a heavy challenge on Neymar.
Luis Suarez slotted home his 11th goal of the season to make it 2-1 before Neymar rounded off the scoring from Xavi’s cross late on.
“I am very happy to be in the final again and we have to congratulate the team,” said Neymar.
“Villarreal are a great team with a lot of high-quality players. We knew it was going to be a difficult game and that is why we started so well. We scored very quickly and that helped us.”
However, victory also came at a cost for Barca as Sergio Busquets was stretchered off in the first-half with a high ankle sprain that could keep him sidelined for a significant couple of weeks with the Catalans set to face Real Madrid in La Liga on March 22.
“It is the bad news of the night without a shadow of a doubt,” said Barca boss Luis Enrique.
“I can’t give a diagnosis before the doctors look at him. We know he will be out for a while, how long the doctors will decide.”
Enrique started Javier Mascherano and Suarez despite both being one yellow card away from missing the final and that decision was vindicated inside three minutes as both were involved in the move that let to Neymar’s opener.
The ball eventually found its way to Messi and his tantalising in-swinging cross was looped over Sergio Asenjo by the Brazilian captain.
Villarreal refused to be beaten despite that early setback as Ikechukwu Uche fired into the side-netting, whilst Marc-Andre Ter Stegen denied Luciano Vietto and Denis Cheryshev.
Marcelino’s men finally got their reward when Dos Santos slotted home Jaume Costa’s cross at the back post six minutes before the break.
And Barca suffered a further blow as Busquets had to be stretchered off after Pina stood on his right ankle in the build-up to the goal.
Villarreal’s momentum was lost 20 minutes into the second period, though, when this time Pina was punished for a dangerous challenge on Neymar from behind.
Suarez and Neymar then passed up good chances to make the tie safe with the latter being denied by a fine save from Asenjo.
However, there was nothing the ‘keeper could do to prevent Suarez scoring for the third consecutive game as he latched onto Mascherano’s ball over the top and kept his composure to round Asenjo before rolling the ball into the unguarded net.
And Neymar notched his second of the night with an easy header from another sumptuous cross, this time from Xavi.
Barca will face either Espanyol or Athletic Bilbao, who play later on Wednesday, in the final with the two sides locked at 1-1 after the first leg.