|Northampton (3) 27|
|Tries: Hutchinson, Mitchell, Ribbans Cons: Grayson 3 Pens: Grayson 2|
|Bath (7) 26|
|Tries: McConnochie, Mercer, Cons: Priestland 2 Pens: Priestland 4|
A David Ribbans converted try in added time gave Northampton a late win over Bath at Franklin's Gardens.
Two late penalties from Rhys Priestland had given Bath a six-point lead before Ribbans' try set up James Grayson for the winning conversion.
Ruaridh McConnochie had given the visitors a 7-3 lead at half-time, before Rory Hutchinson touched down.
Zach Mercer then extended Bath's lead before Alex Mitchell scored as Saints launched a comeback from 17-10 down.
Grayson scored a penalty and then converted Mitchell's try to level the scores at 20-20 with 15 minutes to play.
Two penalties from Priestland then put Bath on course for what would have been a second away victory since September.
But a bombardment from Northampton into added time ended in Ribbans bursting over the line after taking a quick tap penalty.
The victory means Saints continue their strong home form, having only lost one game since September.
Northampton director of rugby Chris Boyd told BBC Radio Northampton:
"It was one of those games. We are obviously delighted to get a victory here, especially at home in front of our supporters but far from happy from the way we played.
"There was a lot of stuff that wasn't great about the way we played.
"But the fact that we gutsed it out and kept our composure at the end and managed to sneak across the line I thought was a pretty fair effort.
"Despite some failings, we managed to show good tenacity and good commitment to get the victory."
Bath general manager Stuart Hooper told BBC Radio Bristol:
"It's always very tough to lose a game like that considering the effort the lads put in throughout.
"It's never nice to come down to the final play, but ultimately you need to make sure you put yourselves in the right positions.
"We've got to make sure we stay alert there and defend for however long it takes the referee to blow the final whistle.
"I thought our defence looked energetic throughout and caused them problems all day."
Northampton: Furbank; Tuala, Hutchinson, Francis, Naiyaravoro; Grayson, Mitchell; Waller (c), Marshall, Hill, Ribbans, Ratuniyarawa, Haskell, Ludlam, Wood.
Replacements: Fish, Van Wyk, Franks, Moon, Gibson, Tupai, Burrell, Pisi.
Bath: Atkins; McConnochie, Joseph, Willison, Vuna; Priestland, Chudley (co-capt); Catt, Dunn, Thomas, Attwood, Charteris (co-capt), Stooke, Louw, Mercer.
Replacements: Walker, van Rooyen, Lahiff, Ewels, Grant, Green, Burns, Clark.
For the latest rugby union news follow @bbcrugbyunion on Twitter.