|Sale (3) 6|
|Pens: MacGinty 2|
|Bath (3) 3|
Sale beat 6-3 Bath in poor conditions to boost their top-six hopes and reduce Bath's chances of finishing in the fourth Premiership play-off spot.
Bath's Freddie Burns and the hosts' AJ MacGinty exchanged first-half penalties to see the sides level at the break.
Burns and his second-half replacement Rhys Priestland both missed from the tee for Bath and MacGinty's second penalty duly punished the visitors.
Sale leapfrogged Bath in the table and go sixth, with two matches remaining.
The visitors' only significant positive on a bad night was that England's Anthony Watson - who had been sidelined since suffering an Achilles injury in the 2018 Six Nations - played for more than 70 minutes.
The two sides, who shared a 7-7 draw in December's reverse fixture at The Rec, similarly failed to dazzle the crowd at the AJ Bell Stadium on Friday.
Todd Blackadder's visitors ended the game with 14 men as Zach Mercer was yellow carded for illegal play at the breakdown in the closing stages, hindering their attempts to snatch a result late on.
Sale director of rugby Steve Diamond:
"You've got bad weather, you've got (Bath's Sam) Underhill and the Currys (for us); you've got three of the best fetchers in the competition who are trying to slow the ball down. You're not going to get a free-flowing game with that.
"Coupled with ill-discipline and errors, it was a tale of two sides not delivering at the highest level but, at the end of the day, it's an ugly win and we'll take it.
"All we've said over the last eight weeks is the old adage of, 'let's take each one (as it comes).' There was no point looking at Bristol or Gloucester (before this game), let's just try and get four points.
"We're not in bonus-point mentality - we've only scored two bonus-point wins all year - so, for some reason, our attack isn't flash, but our defence is very good."
Bath boss Todd Blackadder:
"The work that's going in, the performances aren't reflecting that but, on the back of it, the discipline is just killing us.
"We go from being in good field position, have a really good line-out and then we give three penalties away.
"They're the silly little things which aren't going to win you rugby games.
"We didn't play enough in the Sale 22 and when we did we didn't really apply enough pressure. We coughed it up way too easily."
Sale: L James, Solomona, S James, O'Connor, Ashton, MacGinty, De Klerk; Harrison, Webber, John, Beaumont, Phillips, B Curry, T Curry, Ross.
Replacements: Langdon, Moroz, Jones, Postlethwaite, Strauss, Cliff, Redpath, Reed.
Bath: Watson, Cokanasiga, Joseph, Roberts, McConnochie, Burns, Fotuali'i, Obano, Dunn, Lahiff, Attwood, Ewels, Ellis, Underhill, Mercer.
Replacements: Walker, van Rooyen, Perenise, Douglas, Stooke, Chudley, Priestland, Rokoduguni.
For the latest rugby union news follow @bbcrugbyunion on Twitter.