A late Sam Costelow conversion gave Scarlets a famous European Challenge Cup quarter-final win over 14-man Clermont in Llanelli.
Clermont centre Irae Simone was shown a 24th-minute red card for a reckless tackle on Leigh Halfpenny.
The French side rallied to lead, but Scarlets battled back with Costelow's 77th-minute kick following a Ryan Conbeer try.
Scarlets will now face either Glasgow or Lions in a home semi-final.
The home side had earlier scored tries through Halfpenny, Costelow and Johnny Williams, but had Vaea Fifita and Gareth Davies shown yellow cards in either half.
Clermont responded with tries from Simone, Giorgi Beria and an Alivereti Raka brace, but the late intervention of Conbeer and Costelow sparked wild scenes at Parc y Scarlets.
This was an 11th win in 13 games for a rejuvenated Scarlets side as they beat Clermont for the first time in eight attempts.
Halfpenny, who was forced off the field following the Simone challenge, had returned to replace Tom Rogers in the only change to the starting side that defeated Brive 19-7 last weekend.
Fly-half Costelow was passed fit after coming off against Brive with a dead leg.
Clermont arrived in Llanelli having made three changes from the side that beat Bristol with wing Raka, scrum-half Baptiste Jauneau and lock Paul Jedrasiak starting.
The French side had celebrated seven previous wins against Scarlets and have won this tournament on three occasions.
The visitors started strongly with Anthony Belleau slotting over the opening penalty before that was cancelled out by a kick from Halfpenny, who followed that up with a brilliant try.
Scarlets flanker Aaron Shingler stole a Clermont line-out and the ball was moved to centre Johnny Williams who released Steff Evans. The wing chipped ahead and Halfpenny won the race to score an unconverted try.
Scarlets scored another runaway try as they capitalised on a mistake from Clermont scrum-half Jauneau at a ruck.
Costelow and Evans hacked the ball in turn on before the Scarlets fly-half cantered over with Halfpenny converting.
Clermont responded with a try from centre Simone after Scarlets had failed to defend a Damian Penaud chip.
This was before Simone was dismissed for his illegal challenge on Halfpenny, who was also forced off the field and replaced by Ioan Nicholas.
In Halfpenny's absence, Costelow missed the resulting penalty before the hosts were reduced to 14 men when Scarlets lock Fifita was shown a yellow card for pulling down a Clermont maul.
Clermont capitalised with Raka latching on to Belleau's clever cross kick to score. Belleau converted to level the scores before kicking a second penalty.
Another Clermont mistake was picked off by Scarlets when visiting full-back Alex Newsome threw a long wild pass to Johnny Williams, who sprinted away to score and enable the hosts to lead 22-18 at half-time.
Early in the second half, scrum-half Davies became the second Scarlets player to be sin-binned for a trip on George Moala.
Raka proved the beneficiary as he barged through an attempted Nicholas tackle in the left hand corner for his second score as the visitors moved into a one-point lead.
Clermont finally powered over for a fourth try from replacement prop Beria as they opened up an eight-point advantage.
Scarlets refused to give up and following a Costelow penalty, a clever one-handed offload from Tuipulotu released Conbeer, who expertly wriggled over to score.
This levelled the scores and the majestic Costelow conversion gave Scarlets the lead and a couple of late turnovers from captain Josh Macleod helped seal the victory and set up a semi-final during the final weekend in April.
Scarlets: Leigh Halfpenny; Steff Evans, Joe Roberts, Johnny Williams, Ryan Conbeer; Sam Costelow, Gareth Davies; Kemsley Mathias, Ken Owens, Javan Sebastian, Vaea Fifita, Sam Lousi, Aaron Shingler, Josh Macleod (capt), Sione Kalamafoni.
Replacements: Shaun Evans, Wyn Jones, Sam Wainwright, Morgan Jones, Carwyn Tuipulotu, Kieran Hardy, Dan Jones, Ioan Nicholas.
Clermont: Alex Newsome; Damian Penaud, Irae Simone, George Moala, Alivereti Raka; Anthony Belleau, Baptiste Jauneau; Etienne Falgoux, Etienne Fourcade, Cristian Ojovan, Thibaud Lanen, Paul Jedrasiak, Killian Tixeront, Lucas Dessaigne, Fritz Lee (capt).
Replacements: Jean-Maxence Jules-Rosette, Giorgi Beria, Rabah Slimani, Edward Annandale, Jaco Van Tonder, Sébastien Bézy, Jules Plisson, Bautista Delguy.
Referee: Wayne Barnes (England)
Assistant referees: Adam Leal & Sara Cox (England)
TMO: Andrew Jackson (England).