Two moments of superb footballing skill helped Racing 92 break Sale Sharks' resistance and set up a Champions Cup semi-final with La Rochelle.
Sale led at the interval after Manu Tuilagi ran in unopposed but Racing wrestled back momentum after the break.
Teddy Thomas collected his own kick to score the first try before Finn Russell spectacularly delivered the second.
Akker van der Merwe reduced the deficit but Juan Imhoff and Max Spring scored either side of Ben Curry's consolation.
Sale's positive start undone by classy Parisians
Word from the Sale camp before the trip to the French capital was their intent to rush up in defence to disrupt Scotland fly-half Russell and Racing's flair players.
For 40 minutes at the Paris La Defense Arena the plan worked wonderfully and Russell was denied quality ball to launch attacks as the blue wall moved forward relentlessly.
What let Sale down was their disappointing line-out, with balls often lost against the throw, or scrappily retained, which prevented fluent attacks of their own.
The visitors did, however, score the first try. It looked as if they had overrun the move but Tuilagi clutched the loose ball behind him and ran in unopposed under the posts in the penultimate act of the first half.
The final act saw Rob du Preez make amends for his early penalty miss to convert Tuilagi's try. The scoreboard reflected a carefully crafted gameplan to stifle their hosts, but their 10-6 lead only lasted one minute into the second half.
Racing emerged from the tunnel in a very different mood and the luck was certainly on their side.
Russell prodded a kick through to Thomas, who collected the bouncing ball under the challenge of Luke James. In the same movement the France winger dropped it onto his boot - remaining in the pitch by the barest of margins - before running onto his kick to score.
On another day, the winger could have been adjudged to be in touch, but there was nothing dubious about Russell's excellent try.
It was initiated by a superb cross-kick deep inside his own 22.
When Sale regained possession and attempted to clear their lines, Russell ran onto the ball and cleared down field on the volley.
The bounce of the ball, back over AJ MacGinty's head, favoured the Scotland fly-half and he kicked precisely ahead to score as Racing broke Sale's resistance in nine second-half minutes.
Van der Merwe powered over to reduce the deficit but Le Garrec's five penalties always kept the hosts out of touch, and when Imhoff crossed after a flowing move, the game was gone.
Ben Curry, on for his injured brother Tom, scored a late consolation, but with MacGinty in the sin-bin, Racing saved the best running rugby until the end, with Spring the beneficiary as he finished off a move that included some excellent offloads.
Racing go through to an all French semi-final with last year's runners-up La Rochelle and will aim to go one better than their own three second-place finishes.
'I just volleyed it' - what they said
Racing 92 fly-half Finn Russell speaking to BT Sport: "Sale's defence put us under a lot of pressure.
"They are very physical and our ruck probably wasn't as good as it needed to be, and due to that, we were getting slow ball which allowed them to put a wall in front of us.
"They put us under pressure in the first half but we managed to come through that in the second half and open up a little bit.
"It was my first try of the year actually and it was quite good. When the ball was bouncing I thought 'do I pick it up or just have a crack?' So I just volleyed it. The bounce of the ball worked well."
Line-ups
Racing 92: Spring; Thomas, Fickou, Chavancy, Imhoff; Russell, Le Garrec; Kolingar, Chat, Sa, Chouzenoux, Bresler, Lauret, Diallo, Tanga
Replacements: Vakatawa for Chavancy (57), Gibert for Russell (78), Machenaud for Le Garrec (71), Ben Arous for Kolingar (45), Baubigny for Chat (45), Nyakane for Gomes Sa (45), Pesenti for Bresler (73).Not Used: B. Le Roux.
Sale Sharks: James; Roebuck, R du Preez, Tuilagi, Hammersley; MacGinty, De Klerk; Rodd, Van der Merwe, Schonert, Du Preez, De Jager, Ross, T Curry, D du Preez.
Replacements: S James for L James (71), Metcalf for Hammersley (69), Warr for De Klerk (75),McIntyre for Rodd (54), Ashman for Van der Merwe (63), Oosthuizen for Schonert (54), Wiese for Ross (56), B Curry for T Curry (54).
Sin Bin: MacGinty (76).