Northampton produced a stirring fightback in the second half
Wasps (10) 35
Tries: Waters, Sackey 2, Cipriani
Cons: Van Gisbergen 3
Pens: Van Gisbergen 3
Northampton (12) 29
Tries: Labit, Hartley
Cons: Reihana 2
Pens: Spencer, Reihana 4
Northampton's slender hopes of avoiding relegation were left hanging by a thread after they lost to Wasps at Adams Park on Sunday.
Saints picked up a losing bonus point to stay alive, while Wasps kept the pressure on for a play-off place.
The visitors took a 12-10 lead into the break, but Wasps went well clear with Paul Sackey and Danny Cipriani tries.
A ferocious fightback brought Saints back to 29-29, but two late Mark van Gisbergen penalties settled the match.
With Northampton desperately fighting for their Premiership status, the last team they would have wanted to face was Wasps, equally desperate for the points they needed to make the play-offs.
Carlos Spencer kicked Northampton into an early lead and looked up for the challenge, as he collected his own kick ahead to set up a dangerous position.
Sackey scored two tries on his return to the first team
But Spencer picked up an ankle injury in the process and was soon hobbling off, leaving Bruce Reihana with the goalkicking responsibilities and the captain slotted his first effort for a 6-0 lead.
Jon Clarke was parachuted straight into Northampton's side after a lengthy absence, and Wasps exploited his lack of match practice with a slick try on 12 minutes.
A skilful pass from Cipriani put Clarke in two minds, and Waters' line took him inside the attempted tackle and under the posts.
Another Reihana kick put Northampton back in front, but Wasps should gone ahead when Cipriani rounded Ben Cohen, only for the video referee to rule that he had put the ball down on the touchline in goal.
Van Gisbergen's penalty edged Wasps ahead, but Josh Lewsey's yellow card for killing the ball handed the initiative back to Northampton and a Reihana kick sent Saints into half-time with a narrow lead.
Wasps made a real statement of intent at the start of the second half, with Sackey scoring one of the tries of the season.
Simon Shaw turned over possession in the maul, sparking a glorious move with the ball taken up by Joe Worsley before going wide for Cipriani, Waters and Dominic Waldouck to put Sackey over.
Reihana's penalty kept Northampton in contention, but their chances took a major blow with Cohen's yellow card on 49 minutes.
Van Gisbergen's goalkicking proved to be a match-winner for Wasps
Moments later, Cipriani burst through two tackles to score after a Waldouck half-break and Sackey's second try - after a great pass out of contact by Van Gisbergen - looked to have made the game safe for Wasps.
Suddenly though, Northampton were playing with a new sense of purpose and their driving and offloading game saw the outstanding hooker Dylan Hartley crash over out wide.
Huge kicks from Paul Diggin and Cohen kept the pressure on Wasps, and replacement Christian Labit muscled his way through to cut the gap to two points.
Reihana's first conversion attempt went wide, but he got another chance after Lewsey charged it down illegally. Reihana slotted the kick to level the scores with 12 minutes to go.
Cipriani went well wide with a long-range penalty attempt, but the resulting 22m drop-out proved a turning-point.
The drop-out went all the way down the pitch and rolled agonisingly over the deadball line providing the ideal attacking platform for Wasps.
The home side needed no second invitation, and penalties on 72 and 77 minutes by Van Gisbergen meant Wasps took the win.
Wasps director of rugby Ian McGeechan:
"Northampton took just about every point on offer and it was a fair contest
"We were pretty careless when we went 29-15 up and didn't execute particularly well."
Northampton coach Paul Grayson:
"The game could have gone either way but in the end we had given them too much.
"I think the draw would have been a fair result, but it was a scrappy last five minutes."
Wasps: Van Gisbergen, Sackey, Waters, Waldouck, Lewsey, Cipriani, Reddan, Vickery, Ibanez, Bracken, Shaw, Palmer, Leo, O'Connor, Haskell
Replacements: Ward, Adams, Birkett, Worsley, Amor, Erinle, Walder
Northampton: Diggin, Lamont, Clarke, Reihana, Cohen, Spencer, Robinson, Smith, Hartley, Brooks, D. Browne, Short, Tupai, Lewitt, D. Browne
Replacements: Cortese, Tonga'uiha, Gerard, J. Howard, Myring, Mallon, Labit
Referee: Dave Pearson (RFU)