Sebastien Chabal (right) produced a mighty performance for Sale
Sale (12) 12
Pens: Thomas 3
Stade Francais (3) 6
Pens: Beauxis, Skrela
Sale kept their Heineken Cup Pool Three hopes alive with a gutsy victory over Stade Francais in Stockport.
The hosts took a 12-0 lead midway through the first half courtesy of the boot of fly-half Lee Thomas and a Chris Bell drop-goal.
The visitors got on the board through a 27th minute Lionel Beauxis penalty.
And they claimed what could be a vital bonus point when replacement fly-half David Skrela landed a second penalty deep into injury time.
Talismanic number eight Sebastien Chabal was well to the fore for Sale from the first whistle and a rampaging run from the French number eight led to a penalty after five minutes.
Thomas, playing fly-half in the long-term absence of the injured Charlie Hodgson, made no mistake to get the scoreboard ticking over.
Sale enjoyed substantial territorial advantage in the first quarter and two more Thomas penalties, plus Bell's drop-goal, meant they led 12-0 after 22 minutes.
Stade Francais' away strip may be pink but they are no soft touches and the French league leaders slowly battled their way into the game, with Beauxis slotting a penalty after 27 minutes.
With so much at stake and conditions boggy underfoot space was at a premium and as the rain started to hammer down both sides opted to keep it tight.
606 DEBATE: Give your thoughts on the match
The visitors could have cut the gap either side of half-time but young fly-half Beauxis, a possible contender for the French number 10 jersey, missed both penalty attempts.
However, the visitors now had the upper hand and they put Sale under huge pressure.
The Sharks were lucky to escape when Stade Francais replacement Antoine Burban was pulled back off the ball.
And it went from bad for worse for Burban when he was sin-binned after 52 minutes.
Thomas missed a penalty for Sale soon after and he was also off target with 12 minutes left when Stade Francais prop Rodrigo Roncero was penalised for an off the ball incident.
With the game so tight they could have been expensive misses but Sale, roared on by their vociferous fans, produced some thunderous defence as they held an increasingly desperate Stade Francais at bay until injury time.
Skrela kept his nerve to drill a penalty between the posts and earn the visitors a bonus point for finishing within seven points.
Thomas, who had started the game so well, then missed an attempted drop-goal and Stade Francais will be delighted to have escaped with a point.
Despite the victory Sale stay third but their next game is away to Italian whipping boys Calvisano, while Stade Francais travel to the Ospreys.
If Sale are to stand a realistic chance of topping the group they need the Welsh side to win that match.
Sale meet the Ospreys in the final round of matches, while Stade Francais finish with a home banker against Calvisano.
Sale boss Phillipe Saint-Andre:
"We lost the points last week in Paris, but I'm pleased to beat Stade Francais.
"The commitment of the guys, and our defensive organisation, were good and Lee Thomas did well in what was his first time at fly-half in a big game like this.
"We are missing 12 to 13 players through injury. It makes things difficult but we dug in for the win and will keep on fighting."
Stade coach Fabien Galthie:
"It was important that we got the bonus point. Sale scored a lot of points quickly and that made it difficult for us, but we knew that they would be very aggressive.
"It's important for us to make sure that we get into the quarter-finals. But we've got two very good teams ahead of us.
"Ospreys, in particular, are a very dangerous team."
Sale: Robinson (capt); Foden, Mayor, Bell, Ripol; Thomas, Wigglesworth; Roberts, Titterrell, Stewart, Schofield, I Fernandez Lobbe, Jones, Lund, Chabal.
Replacements: Gaona, Turner, Faure, J Fernandez Lobbe, Larrechea, Taylor.
Stade Francais: Hernandez; Saubade, Messina, Mirco Bergamasco, Corleto; Beauxis, Fillol; Marconnet, Blin, De Villiers, Auradou (capt), James, Mauro Bergamasco, Rabadan, Parisse.
Replacements: Kayser, Roncero, Marchois, Burban, Pichot, Skrela, Arias.
Referee: Nigel Owens (WRFU)