Barcelona's Neymar scored twice and Luis Suarez was also on target as they reached their fourth King's Cup final in five years with a 3-1 win away to Villarreal on Wednesday that gave them a 6-2 aggregate victory.
Villarreal were dreaming of overturning the first-leg defeat at the Nou Camp to reach their first final but their hopes were hit when Neymar scored after three minutes.
Lionel Messi swung in an inviting cross from the right wing, allowing Neymar to nudge the ball past keeper Sergio Asenjo.
Villarreal rallied despite the size of the task ahead and Jonathan dos Santos converted a Jaume Costa cross after 39 minutes to level the score on the night.
Barca were struggling to cope with Villarreal's attacking movement, but any realistic chance of a comeback was extinguished when Tomas Pina was sent off after 64 minutes for a reckless challenge on Neymar from behind.
Suarez latched onto a long ball from Javier Mascherano and rounded the keeper to put Barca ahead and Neymar nodded home a Xavi cross to seal a victory that was tainted by an ankle injury for midfielder Sergio Busquets.
"We were up against a strong side with players that have a lot of quality," Neymar told reporters.
"We knew that it was going to be difficult and I am happy now that we are in a final again."
Barca won the cup in 2012 but lost two other finals in the last five years both against Real Madrid.
They now face either Espanyol or Athletic Bilbao, who play their second leg later on Wednesday after their opening clash ended in a 1-1 draw.
Barcelona began with Ivan Rakitic and Dani Alves on the bench while Villarreal had rested players in Sunday's 1-1 draw with Real Madrid to prepare for the formidable task ahead of them.
To Villarreal’s credit they battled back after conceding the early goal from Neymar and Denis Cheryshev fired over from a tight angle.
Barca looked to knock the ball around in the middle of the pitch and take the sting out of the game, but Villarreal continued to create openings.
Dos Santos equalised with Barca's defence stretched and then before halftime the visitors were dealt a blow with the loss of Busquets through injury.
He was carried off after an accidental collision as he attempted to block a pass by Pina and will undergo tests to determine the extent of the injury.
Villarreal had several chances to set up a tense finale after the break, notably when Luciano Vietto headed over the crossbar.
Yet with Barca looking tentative, the pressure on them was eased by Pina's sending off for a wild lunge on Neymar.
Barca were able to take control and finish off Villarreal's valiant resistance with goals from Suarez and a second from Neymar.
Busquets to undergo tests on ankle injury
Barcelona midfielder Sergio Busquets will undergo tests to discover the extent of an ankle injury he suffered on Wednesday, the club said.
Busquets was carried off during the first half of Barca's King's Cup semi-final clash with Villarreal after an accidental collision as he attempted to block a pass by Tomas Pina.
“The player has an injury to his right ankle,” the Catalan club said in a statement.
"More tests will be carried out tomorrow to determine the extent of the injury."
La Liga PHOTOS: Barcelona receive Malaga shock at home
La Liga: Messi hits record treble, holders Atletico lose at Celta
La Liga PHOTOS: Messi stars as Barca rally to beat Villareal
Football round-up: Shock loss for Barca; Goal leaves Nani in tears
La Liga: Super-sub Negredo helps Valencia go to third