Montpellier reached their first European Challenge Cup semi-final after inflicting a first home defeat of the season on Sale.
Sharks began the game as the only team in Europe yet to lose at home but that record was ended by the Top 14 side.
Danny Cipriani’s boot edged Sale into an 11-10 half-time lead, after Paul Willemse and Tom Brady exchanged tries.
But five Benoit Paillaugue penalties in the second half took Montpellier through, despite Sam James’ late try.
The French side arrived at the AJ Bell Stadium on a six-game winning run and sitting second in the Top 14.
And Paillaugue’s boot punished Sale indiscipline in the second half as the hosts conceded nine penalties to the visitors’ one.
Cipriani kicked Sale into an early lead but Montpellier hit back when Willemse powered his way over from close range.
Fast hands from Cipriani gave Brady the time and space to force his way over as Sale responded, with the fly-half’s second penalty giving them the slenderest of leads.
Paillaugue missed a penalty with the last kick of the first half, which would have sent Montpellier into the break in front, but he was deadly from the tee after the restart as Sale were unable to turn possession into points.
With Montpellier lock Thibault Privat in the sin-bin, Cipriani briefly cut the lead to two points, but Sale’s Neil Briggs was also shown a yellow card and Paillaugue eased Jake White’s side clear.
James scored a stunning solo chip-and-chase try late on to give Sale hope, but Montpellier saw the game through comfortably.
Sale director of rugby Steve Diamond: “I thought we coped with their physicality very well, they scored one try which proved our defence was up for it.
“They were given long-range penalties for some very dubious decision-making and a yellow card which was not a yellow card in my opinion.
“They stretched the letter of the law. They were all over us (at the breakdown) and they got the advantage there so fair play to them.”
Montpellier coach Jake White: “Montpellier haven’t historically got themselves into these sort of situations so I’m very happy that we can take the next step forward.
“It’s knockout rugby now. As much as it would have been nice to score a couple more tries, to get the win was the first prize.
“We had a lot to play for. We knew that if we won this game we would get a home semi-final. We haven’t got to many semi-finals in the first place so to host one in your own town and have your own supporters there is going to be massive.”
Sale Sharks: Haley; Brady, James, Leota, Edwards; Cipriani, Stringer; Harrison, Taylor, Cobilas; Evans, Ostrikov; Neild, Lund (capt), Ioane
Replacements: Briggs, Lewis-Roberts, Mujati, Mills, Seymour, Mitchell, Ford, Jennings
Sin-bin: Briggs (67)
Montpellier: Mogg; Nagusa, Tuitavake, Steyn, Fall; Lucas, Paillaugue; Nariashvili, B du Plessis J du Plessis; Willemse, Privat; Ouedraogo (capt), Liebenberg, Qera
Replacements: Ivaldi, Watremez, Kubriashvili, Watchou, Galletier, Wright, Ebersohn, Floch
Sin-bin: Privat (60)
Ref: John Lacey