Jamie Elliott scored the try of Saints’ season so far to secure a vital 25-23 victory against Bath at Franklin’s Gardens.
The young wing was on the end of a stunning team move to claim his second score of the game and leave the west country side on the canvas.
Bath, who had won their previous six games, looked set to steal it when Alex Waller’s pass was intercepted by Semesa Rokoduguni, who put the away side 23-20 up.
But Elliott was the hero as he latched on the the impressive Ben Foden’s pass to ensure Saints maintained their near 13-year unbeaten home league run against Bath.
Stephen Myler celebrated his new contract by adding 15 points with the boot, as Northampton remained in the hunt for a top-four spot.
The victory was their best of the campaign at Franklin’s Gardens and left fans who had headed for the exits with 12 minutes to go ruing their decision.
Saints had been handed a boost before kick-off as regular nemesis Matt Banahan was forced to withdraw from the Bath line-up, being replaced by Rokoduguni.
Despite that disruption, the away side started the stronger and took advantage by Saints’ early struggles in the lineout.
Mike Haywood, in for skipper Dylan Hartley, misfired with his first two set pieces, and Bath, after pushing the home defence to the limits, won a penalty, which Tom Heathcote landed.
Saints needed a response to quell any early frustration from the home fans and after a slick move, which involved some great handling, Myler made it 3-3 from the tee.
There was more panache and pace about the Northampton game and they were going toe to toe with the Premiership’s form side.
If there was one concern, though, it was in the lineout, where Saints had seen five early attempts stolen by the visitors. They had won nothing on their own throw.
It seemed to be catching as Bath threw their set piece away inside their own 22 and Ben Nutley pounced as his side took control and Myler sent Elliott over in the corner.
The fly-half failed to add the extras, but Saints had the start their wanted, leading 8-3 with with 15 minutes to go before the break.
Bath had the edge in the set piece and after another good scrum, they earned a penalty that Heathcote landed to reduce the deficit to two points.
Saints needed a retort from their forwards and that was exactly what they got moments later as referee Luke Pearce penalised Bath’s pack and Myler made it 11-6.
The scrumm battle was turning into a see-saw clash as back came Bath turning the screw five metres out, leaving Saints with no option to concede a penalty.
Heathcote again hit the target and Bath should have been ahead soon after a bizarre turn of events.
Wing Tom Biggs kicked through and Wilson and Elliott fumbled, before, amazingly, Nick Abendanon knocked on under no pressure and with the line at his mercy.
Saints had escaped to hold an 11-9 lead into the break, and they started the second half in spritely fashion, testing Bath’s speed and strength.
The away side, though, and in particular the physical Biggs were doing their best to shut the door, showing quick line speed.
Saints resorted to the scrum to assert their authority and Myler was given the chance to land another penalty, which he did, with aplomb.
And the No.10, who had signed a new two-year deal at Northampton earlier in the week, added to his tally again soon after, with another three-pointer.
Bath were struggling to deal with the force of their opponents and more aggressive work from the home forwards handed Myler and Saints another three points from the tee.
At 20-9 down, the away side were desperate to regain a foothold in the game, and they did as Anthony Perenise turned on the power and Pearce awarded a penalty try.
Heathcote easily added the extras and the final 19 minutes were promising to be combustible.
Saints just needed to keep their heads, but Waller was to make the most costly of errors, as his pass was intercepted by Rokoduguni, who ran clear of the despairing Foden to score.
Heathcote put Bath 23-20 up with 12 minutes to go and some home fans headed for the exits.
But those supporters may have wished they hadn’t left early, when, with six minutes to go, Saints scored a stunning try.
Elliott it was on the end of a fine move that involved almost every player in the green, black and gold, including Foden, who did brilliantly to play the final pass.
Myler missed the conversion leaving the game on a knife edge at 25-23, but Saints managed to keep their nerve to claim a vital victory.
Saints: Foden; Wilson, G Pisi, May (Waldouck 71), Elliott; Myler, Dickson; Tonga’uiha (A Waller 63), Haywood (McMillan 37), Mercey (Doran-Jones 54); Manoa, Sorenson; Dowson, Nutley, van Velze.
Replacements not used: Craig, Oakley, Roberts, Lamb.
Bath: Abendanon (Cuthbert 64); Agulla, Rokoduguni, Eastmond (Vesty 76), Biggs; Heathcote, Stringer (Claassens 76); Beech (Catt 47), Webber (Batty 76), Perenise (Palmer-Newport 76), Day (Spencer 62), Attwood; Fearns, Gilbert (Koster 62), Skirving.
Referee: Luke Pearce