Matt Doherty had put Wolves in front shortly before half-time when he headed home Diogo Jota's cross.
Raul Jimenez doubled Wolves' lead with a sensational strike on the volley but substitute Gerard Deulofeu pulled one back with 12 minutes to go and then in stoppage time Watford equalised from the penalty spot via Troy Deeney.
Deulofeu struck again in extra-time to complete Watford's comeback and break Wolves hearts.
You'd have to be pretty sadistic to conjure up a crueller way to lose a football match.
Wolves were 180 seconds from reaching their first FA Cup final in 59 years, writes Tim Spiers at Wembley.
A hoof into the stands, a run into the corner, anything, and they'd have been there.
Instead Watford won a penalty when Leander Dendoncker tripped Troy Deeney inside the Wolves box. Deeney did the rest and in extra-time Gerard Deulofeu won it to smash Wolves hearts into smithereens.
So much of football is about momentum and confidence. Wolves were cruising at 2-0 up. They looked the more likely goalscorers, but gradually began to sit deeper and Watford hammered them for 15 minutes.
The tide swung Watford way and Wolves couldn't swim against it. Their FA Cup fairytale turned into a horrifying nightmare.
It'll take a long time to get over this. They were on the brink of history, of greatness, of immortality.
There were no villains, no poor performers – they gave absolutely everything to reach the final but Watford took their momentum and ran with it. Wolves just had no answer.
It's been an unforgettable season and a magical FA Cup run, but to the long list of semi-final heartaches this club has suffered – 1973, 1979, 1981 and 1988 – you can add 2019.
The big team selection call was in defence with Romain Saiss and Ryan Bennett vying for the right centre-half slot.
Saiss got the nod, meaning it was the same XI that had beaten Manchester United 2-1 in the quarter-finals.
Watford boss Javi Gracia sprang a surprise with his team news, naming Wolverhampton-born striker Andre Gray up front alongside former Walsall man Troy Deeney, with Gerard Deulofeu on the bench.
Only one point separates these sides in the league table and most predicted a close game of football between two evenly-matched sides – which is exactly how the first half panned out.
The game ebbed and flowed, with an open start in which Wolves carved out two decent opportunities, giving way to a scrappy period before Watford took charge – but it was Wolves who went in at the break with the all-important advantage.
They could have taken a shock lead inside just 20 seconds with Nuno's team racing out of the blocks. Jonny, who had an excellent first 45 minutes, curled narrowly wide after cutting in from the left.
A few minutes later Jota was fouled just outside the Watford box – up stepped Joao Moutinho who curled his teasing free-kick onto the roof of the net.
Watford looked to Roberto Pereyra to generate their inspiration and he drew two bookings from Wolves players – Saiss and Ruben Neves – but the Hornets couldn't find their way through an organised Wolves defence.
Neither could Wolves at the other end. Watford defended in big numbers but also began to dominate midfield through Abdoulaye Doucoure and Etienne Capoue.
There was a worrying 15-minute spell in which the Hornets controlled possession. The Wolves fans went a little quieter and then Watford created the chance of the game for Gray, who escaped the shackles of Coady and Saiss but lobbed over Ruddy and the crossbar from very close range.
It was a warning sign but Wolves were still stuck in a rut, with Raul Jimenez and Diogo Jota unable to break free of the close attention they were being given.
It was looking a little ominous – but Leander Dendoncker sparked Wolves into life with a 30-yard rocket which took a slight deflection and was tipped over by Heurelho Gomes.
From the resulting corner Wolves took the lead against the run of play. Moutinho played it short to Jota who bent over a come-and-get-me cross to the back stick where Matt Doherty did exactly that, timing his run perfectly to power in a header to send one half of Wembley into ecstasy.
Suddenly Wolves were brimming with confidence. Jota ran from deep edging past three Watford defenders and curled only fractionally wide as he narrowly avoided scoring a Wembley wondergoal.
But back came Watford before the break. A cross was superbly headed by Deeney into Gray's path just 12 yards out – he looked primed to score but Coady produced a monumental block to save Wolves. And that was half-time – a fairly even 45-minutes with both sides bearing their teeth. Wolves were handed plenty of warning signs – but certainly looked capable of increasing their lead.
They had the first opportunity of the second half when Jimenez chased a ball over the top, held off his man and fired goalwards with Gomes having to bat it away.
The Mexican was looking lively and after tenacious work from Jota who outmuscled a defender and fizzed over a cross, Jimenez stretched but couldn't quite divert goalwards with the goal gaping.
Watford were trying to push forward but it was Wolves creating all the best chances. Neves whipped a free-kick mere inches past the post from the left of the penalty area after the lively Jota, now coming into his own, was fouled.
The Hornets just couldn't handle Jota. He raced forward on the break and defenders clawed at him like zombies on the last surviving human – Holebas eventually nailed him and Wolves won a free kick....from which they doubled their lead in sensational style.
Doherty swung the ball over for Jimenez who leapt like he was on a trampoline, chested the ball down and volleyed first-time past Gomes with a terrific goal gushing with quality to grace any Wembley occasion.
Stunned Watford sent on Deulofeu for Will Hughes and looked for a way back into the game, but it was Wolves who continued to look the more likely goalscorers particularly through the exceptional Jota who had their defenders running scared.
At the other end the Hornets were pressing, but Wolves were repelling. Ruddy claimed a couple of crosses and Neves blocked a Doucoure shot.
But eventually the pressure paid when they pulled a goal back. With 12 minutes remaining a long throw came to Deulofeu who curled a deliciously cute effort into the corner over a helpless Ruddy.
Suddenly Wolves were on the ropes. A succession of corners, crosses and long throws had them pinned deep into their own half. Neves even hoofed the ball into the air at one point – it was that sort of game now.
Bennett replaced Neves, with Saiss pushing into midfield, to help Wolves cope. Then Cavaleiro came on for Jota as Nuno sacrificed his best player.
Watford pushed, and pushed, and pushed. And Wolves got deeper, and deeper and deeper. Then in the 92nd minute, with Wolves 180 seconds from the final, Watford struck the cruellest of blows.
Dendoncker was judged to have clipped Deeney in the area from a right-wing cross. Michael Oliver pointed to the spot, VAR agreed and Deeney stepped up to drive the ball past Ruddy to take the game into extra time.
Wolves were sick to the pit of their stomach. The Watford fans were jubilant and loud – the Wolves supporters were stunned and silent.
Their team regained their composure and made the stronger start to extra time, with Jonny forced Gomes to tip over the bar from Jimenez's cross.
But Watford had momentum and belief. They completed their comeback when super-sub Deulofeu raced clear of Jonny and then Coady before shooting across Ruddy in front of the devastated and disbelieving Wolves supporters.
Ruben Vinagre replaced Jonny at half time in extra time as Nuno tried to rally his troops with some rousing words but his shell-shocked players were struggling to generate any momentum with just 10 minutes left to save the tie.
Cavaleiro pinged a cross towards Jimenez but he couldn't divert goalwards, then Vinagre's cross was met by the same player but, again, it didn't quite happen for the striker.
Traore, who had replaced Moutinho in the first period of extra time, was Wolves' best outlet and had the beating of a tiring defence, but his crosses couldn't find a white shirt.
Then came Wolves' big chance – Cavaleiro was free in the box, he rolled the ball past the keeper but delayed his shot and Watford scrambled it clear. Nuno kicked a water bottle in frustration.
There were to be no more opportunities. The players sank to their knees at the final whistle as Watford celebrated.
35 - Watford keeper Gomes is retiring at the end of the season, but he can still make fantastic saves. Dendoncker's strike takes a wicked deflection off Cathcart but the Brazilian manages to keep it out.
36 - GOOOOOAAAAALLLL! From the resulting corner, Wolves take the lead! Moutinho plays it short to Jota, whose inswinging cross is headed home by Doherty at the far post. Excellent, effective routine.
50 - Chance for Wolves as Jimenez looks to cap off the news of his permanent signing with a goal. He cannot guide Jota's cross home though. The ball goes high up in the air, and Gomes gathers.
64 - GOOOOAALLLLLLLLL!! Jimenez scores in superb style! Doherty swings the ball into the box and the Mexican chests it down to perfection, and volleys past a helpless Gomes. A wonderful finish.
79 - Goal! Deulofeu, on as a substitute, comes up with a piece of brilliance to give Watford hope! He delicately chips the ball past Ruddy and in at the far post. Nothing the keeper could have done.
90+4 - Goal! From a penalty, deep into stoppage time for the Hornets! One last throw of the dice brings a spot-kick as Dendoncker trips Deeney, who keeps his cool and thunders home from 12 yards. Extra-time it is.
104 - Goal! Watford complete the comeback! Deulofeu has made the difference. He escapes the attention of Otto and pokes the ball past Ruddy, into the far corner. Confidently done by the former Barcelona man.
118 - Golden chance for Wolves! Cavaleiro stays onside to latch onto a through-ball. He rounds Gomes but then loses his footing and the opportunity, somehow, goes begging. That is it.
Watford (4-4-2): Gomes; Femenia (Janmaat, 108), Mariappa, Cathcart, Holebas (Masina, 98); Hughes (Deulofeu, 65) (Sema, 112), Doucoure, Capoue; Gray, Deeney (c), Pereyra
Subs not used: Foster (gk), Kabasele, Quina
Goals: Deulofeu (78, 104), Deeney (pen 90+4)
Wolves (3-5-2): Ruddy; Saiss, Coady (c), Boly; Doherty, Neves (Bennett, 86), Dendoncker, Moutinho (Traore, 101), Otto (Vinagre, 106); Jimenez, Jota (Cavaleiro, 88)
Subs not used: Norris (gk), Gibbs-White, Costa
Goals: Doherty (36), Jimenez (62)
Referee: Michael Oliver (Northumberland)
Wolves are back in league action next Saturday when they travel to Southampton, kick off 3pm.