Bath held out against London Wasps to reach their first Amlin Challenge Cup final since 2008.
Anthony Perenise had Bath in front with a catch-and-drive try, but Wasps hit back through Will Helu.
Rob Webber went in twice for Bath, capitalising on a poor Wasps line-out and then crossing from a driving maul.
Ashley Johnson squeezed down as Wasps drew to within six points, but, even though Kyle Eastmond was sin-binned, Bath showed defensive grit to progress.
Bath have aspirations of the Premiership title this season and, though they still need to certify their spot in the play-offs, they are in the mix for a Premiership-European double as they set up a Cardiff Arms Park final against Northampton Saints on 23 May.
The West Country side, who had only lost one game in this competition since 2007, have already booked their place in next season's inaugural European Rugby Champions Cup, while Wasps are scrapping to hold on to seventh place in the league and the chance to be in a play-off to join their opponents.
But neither side looked to be distracted by domestic pursuits in a high-tempo, physical opening that saw Wasps skipper Chris Bell trudge off after a blow to the head, as Andy Goode's two penalties to George Ford's one edged the hosts in front.
And despite Wasps' punch in the pack, it was Bath who were showing the more guile with the ball, moving it quickly across their back line.
The pace unsettled Dai Young's men and they conceded the first try from a well executed catch and drive deep in their own territory, Matt Garvey taking the ball down and Perenise bulldozing over for Bath.
And Wasps had to survive a scare of their own making, messing up a line-out in their own 22 and just about holding Bath up short of the line.
It proved to be crucial, as Wasps collected a Ford return and, in their first incisive move of the half, swept through Bath with Daly feeding Helu who jinked inside to finish a try that Goode converted.
Mike Ford's Bath were almost further behind straight after the break, but Kearnan Myall's score was ruled out for a forward pass.
Moments later Wasps had themselves in trouble in their own 22 again as Carlo Festuccia's line-out sailed over everyone and Webber collected for a simple finish against his former club, before Ford picked up the extras.
And Bath were rewarded for their bravery shortly after, opting for an attacking line-out rather than the three points, and Webber was over again from the subsequent drive and Ford was on target once more off the tee.
Wasps replied as Johnson somehow stretched to touch down from a maul and Goode missed the conversion.
Goode was at the centre of some controversy at the other end, somehow persuading referee Romain Poite to go to the replay after Jonathan Joseph had scored and getting the try successfully overturned for a knock-on.
It could have proved a sore point for Bath had Wasps found the converted try they needed to win late on but, despite defending with a man down after Eastmond's tip tackle on Charlie Hayter, Mike Ford's men kept the late onslaught at bay and are now one win away from claiming the trophy they won six years ago.
London Wasps director of rugby Dai Young:
"We came up a little bit short if we're honest.
"Today was a mirror image of most of the season. We work our socks off to get our points and we always have to seem to do it the hard way and give points away very cheaply. Not through lapses of defence but through lapses of communication or focus.
"Against a quality team like Bath they are always going to hurt you."
Bath director of rugby Mike Ford:
"It was tough. We're really delighted to get to a final. We think the team needed that in terms of the belief.
"With it being tense at the end and them having a lot of field position and Kyle in the bin, I can't underestimate how leadership got us through that.
"I was thinking 'what a perfect first half'. They just never looked like scoring. But then all of a sudden before I get to the bottom of the steps they are under the sticks.
"That gave them the spur to go on. Fair play to Wasps, they were never going to let up. But our defence in the last 20 minutes was very good."
London Wasps: Masi; Helu, Daly, Bell (c), Varndell; Goode, Simpson; Mullan, Festuccia, Swainston; Launchbury, Myall; Johnson, Haskell, Hughes
Replacements: Lindsay, McIntyre, Vea, Palmer, Jones, Davies, Carlisle, Hayter
Bath: Abendanon; Rokoduguni, Joseph, Eastmond, Banahan; Ford, Stringer; Catt, Webber, Perenise; Hooper (c), Day; Garvey, Mercer, Houston
Replacements: Batty, James, Wilson, Fa'osiliva, Fearns, Young, Henson, Watson
Referee: Romain Poite (France)