Bristol needed extra time to make their first-ever European final as they beat Bordeaux 37-20 in the Challenge Cup.
Matthieu Jalibert's try and penalties saw Bordeaux race into a 13-0 lead.
Tries from Steven Luatua and Max Malins put Bristol in control in normal time before Joseph Dweba levelled late on.
With the scores tied at 20-20 after normal time, tries from Piers O'Conor and Malins saw Bristol overcome opponents who were down to 14 men for the extra period after injury.
Bristol will face either Toulon or Leicester in the final on 16 October.
The result means the Bears go one stage further than their previous best in Europe, when they reached the semi-finals of the same competition 20 years ago.
Jalibert stars in exciting first half
In an opening period played at a frenetic pace French fly-half Jalibert was a handful, his jinking runs causing Bristol problems time and again - he impressively put the visitors ahead when he effortlessly side-stepped Max Malins to race in from 40 metres after 11 minutes.
Despite the hosts having powerful runners like Nathan Hughes and Semi Radradra the French defence gave very little to Bristol, forcing them to play mainly in their own half, and when the Bears did break through with Harry Randall, Bordeaux were able to recover and force a turnover on their own line.
Jalibert kicked two penalties in the space of two minutes to open up a gap on the scoreboard, but Bristol hit back with their best move of the half two minutes before the break. Radradra sucked in the defence after an expansive move to create an overlap on the right, which allowed Luatua to go over unchallenged.
Bristol heartache after 13-point comeback
The Bears were dealt a blow less than a minute after the restart when Radradra was sin-binned for a high tackle on Jean-Baptiste Dubie, but the hosts did well to keep control of possession while short-handed and went ahead as Randall's perfectly-weighted grubber kick was pounced on by Malins, who crossed under the posts.
Having got back to 15 players Bristol asserted their control as Hughes had a try ruled out after failing to ground the ball, while Bordeaux appeared to greatly miss their playmaker Jalibert - forced off soon after half-time.
Bordeaux started to tire under increasing Bristol pressure and Callum Sheedy punished them with two quickfire penalties, but South African replacement hooker Dweba was on hand to force his way over from close range after sustained pressure on the Bristol line.
In the final minutes of normal time Bordeaux were dealt what proved to be a fatal blow as number eight Marco Tauleigne came off injured, and having used all their replacements the visitors faced extra time with 14 men.
Bristol blow away Bordeaux
With neither side able to make a decisive score late on the game went to extra time, and O'Conor gave the hosts the perfect start as he jinked in down the left wing from Malins' pass after another piece of Radradra excellence set up the field position.
Five minutes later it was all over - Radradra was key again as his quick pass put Malins in the clear on the right wing after a crossfield move and the full-back dotted down for his second try.
Bordeaux's Lekso Kaulashvili had a try attempt ruled out by the television official on the stroke of half-time in extra time, and when Sheedy kicked a penalty with four minutes left there was no chance of a comeback.
Bristol director of rugby Pat Lam told BBC Radio Bristol:
"I'm very proud of the boys, it's mirrored the growth of the team.
"We put ourselves under a lot of pressure, gave them a 13-point lead, worked our way back, took the lead, gave it up again and then with extra time we came home strong.
"We haven't won it yet, we've given ourselves the best possible opportunity. We've worked hard through the pool games to get these home games, we've got to make sure we do whatever we can to get that trophy for all our supporters.
"I've got to give credit to Bordeaux, that is one tough team, and we can't underestimate how tough that was out there."
Bristol Bears: Malins; Morahan, Radradra, Piutau, Leiua; Sheedy, Randall; Woolmore, Thacker, Sinckler; Holmes, Vui; Luatua (c), Earl, Hughes.
Replacements: Capon, Thomas, Afoa, Joyce, Thomas, Uren, Lloyd, O'Conor.
Bordeaux: Ducuing; Cordero, Dubia, Seuteni, Lam; Jalibert, Lucu; Poirot, Maynadier, Tameifuna; Douglas, Swamp; Woki, Tauleigne, Petti.
Replacements: Dweba, Kaulashvili, Cobilas, Roumat, Lesgourgues, Uberti.
For the latest rugby union news follow @bbcrugbyunion on Twitter.