Rob Miller scored the only try of the game eight minutes from time as Sale beat Bath in the Premiership.
In a tight first half, Olly Barkley's penalty put Bath ahead, before two successful kicks from Nick Macleod gave Sale a three-point half-time lead.
Macleod's third penalty stretched the advantage before two Barkley kicks levelled the score at 9-9.
Miller went over to put the hosts ahead again - Macleod kicked the extras - as Sale moved up to sixth in the table.
The visitors had the better of the opening exchanges and fly-half Tom Heathcote's attempted kick slipped wide of the upright.
Sale's Andrew Sheridan was sin-binned in the 20th minute when he took out Dave Attwood at the lineout, and Barkley converted the resultant penalty.
Two successful Macleod kicks before half-time - and another as heavy rain began to lash down in the second period - gave Sale the upper hand.
But the hosts made a mess of the restart and Barkley reduced the arrears within two minutes and levelled matters with a third from the tee.
Full-back Miller latched on to a loose ball and kicked through, before beating Nick Abendanon to touch down, and Macleod converted to effectively end Bath's Heineken Cup aspirations.
VIEWS FROM THE DRESSING ROOM
Sale chief executive Steve Diamond:
"We're delighted with the win. We've worked hard since Saracens and we were unlucky to lose the game against Newcastle Falcons away.
"We've done a lot on our defence and it showed in the last 15 minutes that they've been listening to what we've been doing in training.
"At this end of the season, if we can scrape into Europe then they're the four points that might help us get there."
Bath first-team coach Brad Davis:
"We can't fault the effort and commitment of the guys, they were absolutely outstanding. We went for the full 80 minutes which is pleasing.
"We asked for a response after the Northampton game and I thought we got that in bucketloads. On reflection, a draw was probably a fair result.
"The try they scored was a bounce of a ball and a hack through, and sometimes you get on the right end of them and sometimes you get on the wrong end of them."
Sale Sharks: Miller; Brady, Leota, Tuitupou (capt), Cueto; Macleod, Peel; Sheridan, Ward, Buckley; Ostrikov, Myall; Gaskell, Seymour, Powell.
Replacements: Addison for Tuitupou (61), Willis for Peel (12), Thomas for Buckley (63), Easter for Vernon (63). Not Used: Jones, Cobilas, Holmes, Amesbury.
Sin Bin: Sheridan (19).
Bath: Abendanon; Carraro, Banahan, Barkley, Biggs; Heathcote, Claassens; Catt, Batty, Wilson; Attwood, Hooper (capt); Skirving, Fearns, Taylor.
Replacements: Beech for Catt (71), Dixon for Batty (54), Perenise for Wilson (65), Caldwell for Attwood (54), Ovens for Caldwell (58). Not Used: McMillan, Vesty, Hipkiss.
Referee: Greg Garner (RFU).