A second-half comeback saw Sale inflict a third consecutive Premiership defeat on struggling Bath.
A Michael Claassens try and five points from the boot of Olly Barkley gave Bath a 10-0 lead at the break.
But Sale got back on level terms through a Nick MacLeod penalty and a Mark Cueto try that was converted by the Sharks fly-half.
Barkley then put Bath back in front with a penalty before two successful kicks from MacLeod secured Sale's win.
Bath's latest defeat leaves the West country club, who had 13 players missing including England World Cup captain Lewis Moody and New Zealand international Stephen Donald, just seven points above bottom side Newcastle.
The hosts opened the scoring through a Barkley penalty after 10 minutes of play.
And just nine minutes later they extended their lead when Claassens wriggled free from a ruck to run to the line and score the opening try, which Barkley then converted.
Bath looked to be in control at the break, holding a 10-0 lead, but MacLeod led the way as Sale turned the game around with 16 points of their own.
He opened the scoring in the second half with a penalty before adding a conversion to his day's work, after Cueto had dummied his way over the line.
Barkley then kicked his second three-pointer of the afternoon to put the hosts back in front.
But Sharks fly-half MacLeod levelled the game before his third penalty of the match put the visitors ahead for the first time in the match and they held on to extend Bath's poor domestic run.
Bath coach Brad Davis:
"We've all got to look hard at ourselves - coaches included - because the performances we are putting in at the moment aren't of a standard that's expected at Bath Rugby.
"It's our job to get things right. You get the credit when it's all going well and you expect the criticism when it's not going so well. We've got to ride this through.
"It was as if we sent out two different teams - the one that started in the first half and the one that came out for the second 40. We couldn't get into the second 40 and when we had a chance to win it, guys came up with some really poor decisions."
Sale director of sport Steve Diamond:
"We capitulated last week against Exeter and that was a huge watershed for us as a team because you shouldn't be 23 points up and lose - and we did.
"So there was a bit of directness applied; come down here, get the result and concentrate on performance. It's tough to win here.
"It wasn't a fantastic game skill-wise but the endeavour, the hits that were put in, were second to none. It's a tough league and to come here and get four points is good for us."
Bath: Cuthbert; Woodburn, Banahan, Barkley, Abendanon; Heathcote, Claassens; Flatman, Tanner, Wilson; Hooper (capt), Caldwell; Ovens, Mercer, Taylor.
Replacements: Hipkiss for Abendanon (68), Vesty for Heathcote (77), Beech for Flatman (58), Biller for Tanner (58), Perenise for Wilson (58), Attwood for Hooper (72).Not Used: Tyas, Cook.
Sale: Cueto; Addison, Leota, Tuitupou (capt), Tuculet; MacLeod, Peel; Dickinson, Jones, Buckley; McKenzie, Myall; Vernon, Seymour, Powell.
Replacements: Willis for Peel (64), Thomas for Buckley (61), Gaskell for McKenzie (72), Tololima-Auva'a for Vernon (61).Not Used: Taylor, Cobilas, Lavea, Burrell.
Referee: John Paul Doyle (RFU).