Sale Sharks extended Bath's losing streak in all competitions to four straight losses with a 16-9 Aviva Premiership victory at Edgeley Park on Friday.
The victory also ended a three match losing streak for Sale Sharks who also beat Bath earlier this season in Round 10.
The win lifted Sale up to sixth in the table and sets up an intriguing Heineken Cup shoot-out with rivals Gloucester next weekend.
In a game of fine margins it was Rob Miller's 72nd-minute try that proved the difference between two sides desperate to win.
The Sale full-back hacked on a loose ball and showed great pace to beat opposite number Nick Abendanon to the touch down. Fly-half Macleod added the extras.
Until then all the points had come from penalties - three apiece for Macleod and Bath's Olly Barkley.
Bath took the lead at the end of the first quarter when Sale's Andrew Sheridan was penalised for taking out Dave Attwood in the air in the line-out and shown the yellow card.
The visitors were unable to punish Sale further, although things could have been different had Matt Banahan not suffered a 'Devon Loch' moment the night before the Grand National.
Banahan caught his big toe in the Edgeley Park turf when unopposed and in the clear from an interception, much to the amusement of the home crowd that included watching England boss Stuart Lancaster.
Instead it was Sale who scored next, with Macleod making it 6-3 at half-time through two penalties.
Bath were heavily penalised at the breakdown in the third quarter, during which time Sale extended their lead to 9-3.
Shortly afterwards Bath pulled three points back thanks to Barkley's boot, but that was as good as it got for Ian McGeechan's men whose own European hopes look all but over.
Final Score Sale 16 (6) Bath 9 (3)
Penalties: MacLeod 3
Penalties: Barkley 2, Banahan
Referee: Greg Garner (34th Premiership game)
15.Rob Miller, 14.Tom Brady, 13.Johnny Leota, 12.Sam Tuitupou (capt.), 11.Mark Cueto, 10.Nick Macleod, 9.Dwayne Peel,8.Andy Powell,7.David Seymour,,6.James Gaskell,5.Kearnan Myall,4.Andrei Ostrikov, 3.Tony Buckley,2. Joe Ward ,1.Andrew Sheridan
Replacements: 16. Marc Jones, 17.Vadim Cobilas, 18.Henry Thomas,19.Richie Vernon,20.Mark Easter,21.Cillian Willis, 22.Will Addison,23.Charlie Amesbury.
15. Nick Abendanon , 14. Matt Carraro , 13. Matt Banahan , 12. Olly Barkley , 11. Tom Biggs , 10. Tom Heathcote , 9. Michael Claassens ,8. Simon Taylor , 7. Carl Fearns , 6. Ben Skirving , 5. Dave Attwood , 4. Stuart Hooper (c) , 3. David Wilson , 2. Ross Batty, 1. Nathan Catt
Replacements : 16. Pieter Dixon , 17. Charlie Beech , 18. Anthony Perenise , 19. Ryan Caldwell , 20. Josh Ovens , 21. Mark McMillan , 22. Sam Vesty , 23. Dan Hipkiss