Simon Zebo and Donnacha Ryan are bound for the Heineken Champions Cup final after Racing 92 beat Saracens in Paris.
Alex Goode had kicked five penalties as Saracens overturned a 9-6 interval deficit and boost hopes of a fourth title in five years.
But the champions were undone in the 76th minute when leading 15-12, Virimi Vakatawa charged clear and wing Juan Imhoff accepted Finn Russell's pass to score the game's only try which Maxime Machenaud converted.
Teddy Iribaren (3) and Machenaud had earlier kicked penalties for Racing - losing finalists in 2016 and 2018 - as the 1,000 fans allowed in at the Paris La Defense Arena savoured a famous home victory.
Keep the faith,,1 to go brother shkin— Simon Zebo (@SimonZebo) September 26, 2020
HON CORK ,,HON TIPP
Saracens kept the same side that floored Leinster in the quarter-final, with Goode continuing at fly-half in the place of the suspended Owen Farrell.
Russell and Zebo were part of a dangerous Racing back division whose efficiency was reflected by the fact the French club had managed the most clean breaks in the competition this season.
Racing lost flanker Fabien Sanconnie to a third-minute head injury and the subsequent delay appeared to affect both sides, who struggled for fluency during a scrappy opening.
Iribaren broke the deadlock with an 11th-minute penalty before Saracens centre Duncan Taylor was forced off with a shoulder injury and replaced by Dominic Morris.
The Vunipolas, Mako and Billy, combined neatly in Saracens' best passage of play and Racing were punished by referee Nigel Owens for not using ruck possession quickly enough.
Goode levelled the scores from in front of the posts and Saracens were beginning to win the battle for field position.
A second Goode penalty gave the visitors the lead on the half-hour mark, but Iribaren immediately replied to tie the scores at 6-6.
Camille Chat's careless knock-on allowed Saracens a prime attacking opportunity, but indiscipline at scrum-time let Racing off the hook and Teddy Thomas' break down the left set up one final first-half chance.
Racing won a line-out penalty and Iribaren's kick was classed as good, even though there was some confusion whether it had actually flown inside the post.
Parity was soon restored at the start of the second half as Antonie Claasen knocked on deliberately and Goode stroked over his third penalty.
Goode quickly added a fourth goal for a 12-9 lead as an effective kick-and-chase game began to turn the screw on Racing.
Morris forced another turnover with a crunching hit on Zebo and Goode's fifth penalty provided some breathing space as the lead stretched to six points for the first time.
Alex Lewington might have put the issue beyond doubt on a breakaway, but he chose to gather rather than hack on and was held up by backtracking Racing defenders.
Saracens mainstay Brad Barritt was forced off inside the final quarter and his departure galvanised Racing, with Machenaud cutting the gap to three points.
Vakatawa was at the forefront of a thrilling home attack and, although Racing were denied on that occasion, the centre ran clear again and Saracens' grip on the Champions Cup was loosened.
Racing will face Exeter, who beat Toulouse 28-18 in the other semi-final, on 17 October.