|Sale Sharks (17) 29|
|Tries: Cobilas, Addison, Seymour, Easter Cons: Cipriani 3 Pen: Cipriani|
|Bath (9) 17|
|Try: Rokoduguni Pens: Ford 4|
Two late tries gave Sale victory over Bath and moved the Sharks into the Premiership's top six.
Sale, unbeaten at home in the top flight since April 2015, were 17-9 ahead at half-time through Vadim Cobilas and Will Addison tries.
George Ford's boot brought Bath's only points of the half, but Semesa Rokoduguni crossed and Ford kicked again to draw them level.
However, David Seymour and Mark Easter gave the hosts a bonus-point win.
There was concern towards the end of the game at the AJ Bell Stadium for Bath and England centre Kyle Eastmond, though, who received lengthy treatment after a tackle by Will Addison and was eventually taken off on a stretcher.
Victory for Sale moved them to within eight points of Leicester in the final play-off spot, and also meant that third-placed Exeter Chiefs are still yet to be confirmed as top-four finishers.
Sale were on the scoreboard early as prop Cobilas found a gap from five metres out, before Addison took advantage of neat overlapping play to touch down his fourth Premiership try of the season.
But Ford's boot kept his side within touching distance and, after having an 80-metre solo first-half try ruled out for a deliberate knock-on, Rokoduguni finished off a flowing Bath move.
Ford's penalty soon drew the visitors level, but he then missed an easy kick to put them ahead, while opposite number Danny Cipriani also scuppered two attempts for three points.
But, after sustained pressure and with Bath down to 14 men after lock Dominic Day's sin-binning, Seymour finished from a maul and Easter added gloss to the scoreline as the clock ticked towards 80 minutes.
Sale director of rugby Steve Diamond:
"If we win our last three games we'll get there (European Champions Cup qualification). We know where we're at, we know how good we are and we just have to keep building the team.
"Bath proved what a good side they are today and it went down to the wire.
"It was 17-17 for a long time and it was error-strewn from us in the second half having struggled with a bit of ill-discipline, but we managed to get a bit of field position in the last 10 minutes."
Bath coach Neal Hatley:
"We put ourselves in a position to win the game and we're really disappointed we didn't make the most of those opportunities.
"At 17-17 we felt that we had real control of the game. From a set-piece point of view, I thought we were well in control and we just didn't make the most of it."
On Kyle Eastmond's injury: "He took a heavy shot so the good news is that he's up and moving around.
"He seems in good spirits in the changing rooms and we'll look after him over the next day or so just to make sure we know exactly where he is."
Sale: Haley; Addison, James, Tuitupou (capt), Edwards; Cipriani, Stringer; Lewis-Roberts, Taylor, Cobilas, Evans, Ostrikov, Neild, Ioane, Easter.
Replacements: Briggs, Harrison, Mujati, Mills, Seymour, Mitchell, Ford, Brady.
Bath: Priestland; Rokoduguni, Joseph, Devoto, Banahan; Ford (capt), Cook; Catt, Webber, Thomas, Day, Attwood, Garvey, Mercer, Houston.
Replacements: Dunn, Auterac, Wilson, Ewels, Denton, Mafi, Homer, Eastmond.
For the latest rugby union news follow @bbcrugbyunion on Twitter.