Josh Bassett's 77th-minute try earned Wasps a 21-20 victory over Leicester Tigers to set up a Premiership final against Exeter Chiefs.
Bassett was a second-half replacement for Kurtley Beale, who will be a doubt for next weekend's Twickenham showpiece after appearing to sustain a knee injury, and crossed at the death to end a run of four successive semi-final defeats for Wasps.
Leicester displayed the sort of character required to earn a top-four finish despite being led by three different coaches, captain Tom Youngs back in the line-up for the first time since it was revealed his wife had been diagnosed with terminal cancer.
The Tigers were unable to inflict Wasps' first defeat at home this season, though, with Dai Young's men digging deep to advance to the final.
Beale will leave Wasps for Waratahs at the end of the season and marked his last game at the Ricoh Arena with the opening score after Willie le Roux's pass over Adam Thompstone.
Jimmy Gopperth kept Leicester at arm's length by responding to a pair of Freddie Burns penalties with his second three-pointer, but the Tigers drew level when Burns' cut-out pass put Peter Betham in on the left.
Gopperth sent Wasps into half-time with a slender advantage, but, after Beale was replaced by Bassett, Telusa Veainu crossed to put Leicester ahead for the first time on the day.
The Tigers defended doggedly, but failed to hold on to their four-point advantage, with Bassett touching down the decisive score while Burns lay prone and seemingly unconscious.