Stephen Myler's injury-time conversion earned Northampton a thrilling bonus-point win over play-off rivals Wasps.
The dominance of the Saints pack earned an early penalty try and scores for Lee Dickson and Dylan Hartley.
But Tom Varndell's try and the boots of Elliot Daly and Stephen Jones ensured Wasps only trailed 19-16 at half-time.
Daly dived in at the corner to put Wasps ahead, only for Christian Day to burrow over at the death and Myler slotted over the game's last kick.
Myler's conversion not only made it four straight Premiership wins for the fourth-placed Saints, but also ended Wasps' unbeaten home record.
And, more importantly, it opened up a seven-point gap between the two sides in the race for a play-off place with only four games of the regular season remaining.
Northampton bossed the early exchanges and their pack soon had Wasps in reverse.
From a line-out, Saints forced the hosts backwards and their progress was only checked when Rhys Thomas pulled down the maul, resulting in referee David Rose awarding a penalty try and sending the Wales international to the sin-bin.
Myler added the conversion and, after Daly got Wasps on the scoreboard with a long-range penalty, Saints extended their lead when scrum-half Dickson sneaked over after more good work from his forwards.
Varndell raced past three attempted tackles and in from half-way to reply instantly and the conversion and a penalty from Jones put the home side in front.
But after Tom Palmer, back from a three-month injury lay-off, was sin-binned for bringing down another maul, Hartley crashed over to ensure Saints led at the break.
Two more Jones penalties either side of half-time levelled matters and when Daly capped a brilliant Wasps move by shrugging off Myler and Ben Foden's tackle to dive over in the corner, it looked like the hosts may win to move level on points with Saints in the table.
However, the momentum switched again when Ashley Johnson became the third Wasps player to go to the bin for stopping another Northampton drive.
And they were left powerless when Day drove over to earn a bonus point and present Myler with the simplest of conversions to seal victory.
VIEWS FROM THE DRESSING ROOM
Wasps boss Dai Young:
"They were dominant up front, that was their one weapon. They did not try and play, or need to play, any other way. You will always struggle to win any game if you cannot stop a driving line-out.
"We were better in the second half, but in the last 10 minutes I felt penalties would come from somewhere to put us inside our own 22.
"I had issue with quite a few (of those penalties), the last three in particular, but it does not change anything.
"It's no good me sitting here throwing stones at the referee. It doesn't change anything.
"We just have to move on, but everyone in the stadium never felt we were going to be allowed out of our half (in the last 10 minutes)."
Northampton director of rugby Jim Mallinder:
"We would have been kicking ourselves if we had not have won. But a team like Wasps can score points very quickly and we gave away too many penalties to allow them to keep the scoreboard ticking.
"Our maul was exceptional and it was an area we targeted. Conditions can change and you have to have more to your game than that, but today the conditions were bad out there.
"It was blustery, it was snowing and if you have a weapon like that then why not use it?
"I thought David Rose refereed that part of the game particularly well, although I am sure Dai Young may say something else."
Wasps: Southwell, Varndell, Daly, C. Bell, Wade, S. Jones, Simpson, Payne, R. Thomas, Swainston, Palmer, Wentzel, Johnson, S. Jones, Vunipola.
Replacements: Masi for Varndell (60), N. Robinson for S. Jones (53), Taulafo for Payne (49), Lindsay for R. Thomas (53), Taylor for Swainston (65), Launchbury for Palmer (49), Haskell for S. Jones (49). Not Used: Comnins.
Sin Bin: Thomas (8), Palmer (33), Johnson (74).
Northampton: Foden, Wilson, G. Pisi, Waldouck, Elliott, Myler,Dickson, Tonga'uiha, Hartley, Mercey, Lawes, C. Day, Manoa, Dowson, van Velze.
Replacements: Roberts for Dickson (54), A. Waller for Tonga'uiha (69), Mujati for Mercey (49), Wood for van Velze (49). Not Used: McMillian, Nutley, Lamb, May.
Ref: David Rose (RFU).