Villarreal came into the tie 3-1 down on aggregate and knowing that they had to start quickly, but it was Barcelona that got on the scoreboard after just three minutes. Lionel Messi curled a pass through the yellow shirts in defence and onto the foot of Neymar, who chipped over Sergio Asenjo with his first touch.
Sergio Busquets then had to be stretchered off after he suffered what looked like an ankle injury following a nasty challenge.
Things calmed down after the break, with Messi's long-range effort the first real shot of note before Tomas Pina was sent off for a reckless challenge on Neymar.
Suarez then rounded Asenjo to slot home after a defence-splitting pass from Javier Mascherano, before Neymar got his second to take the score to 3-1 on the night and 6-2 on aggregate, cushioning a header into the goal after a pass from Xavi.
Barcelona head into their 38th Copa del Rey final and will face the winner of Espanyol and Athletic Bilbao.