The result keeps Saints above them in the mix with two more pool games remaining while Ulster, whose 13-game winning run came to an end in front of their home fans, are no longer in control of the group - even though they still managed a losing bonus point.
The visitors scored all their points in the opening 40 minutes with a try from number eight Gerrit-Jan van Velze along with a conversion and penalty from Stephen Myler.
Northampton deserved their win despite Ulster's frantic efforts to snatch the game, with Ruan Pienaar's last-gasp penalty to win it sailing wide.
Ulster's points all came from the boot of Paddy Jackson.
Clermont Auvergne landed a crushing blow to Leinster's hopes of defending the Heineken Cup with a fine 28-21 victory.
Morgan Parra masterminded back-to-back wins for Clermont over the champions, slotting eight of his nine kicks at goal for a 23-point haul.
A crowd of 48,964 - an Irish record for a European pool match - watched Wesley Fofana tear over for a try five minutes before the break to help Clermont push 16-6 clear.
Man-of-the-match Parra managed to convert Fofana's try, adding to three earlier penalties, with Jonathan Sexton booting a brace of penalties for the Irish province.
As Leinster continued to leak penalties, Parra kept Clermont on course to end a run of five straight defeats in Ireland since 2007.
The margin was widened to 25-9 before Leinster recovered to score two tries in the closing quarter-hour through Shane Jennings and Fergus McFadden, the latter's effort coming in a daring last-minute raid.
McFadden's try garnered a losing bonus point for a well-beaten Leinster side, who are now eight points adrift of Pool Five leaders Clermont.
The Ospreys gave themselves hope of securing a Heineken Cup quarter-final berth with a stunning 17-6 victory over four-time champions Toulouse at the Liberty Stadium.
Dan Biggar kicked two penalties and a drop-goal to give the hosts a 9-6 half-time lead, with a further penalty from the fly-half and an excellent finish from man of the match Eli Walker sealing a famous win.
Toulouse's only response came in the form of a penalty and drop-goal from Jean-Marc Doussain and their failure to at least pick up a losing bonus point.
Leicester kept their hopes alive with a vital 14-13 win over Treviso at the Stadio di Monigo - with the winning try coming two minutes from time.
Alberto Di Bernardo kicked everything that came his way for Franco Smith's men who also managed a penalty try of their own.
Adam Thompstone scored a try for the visitors and with virtually the last throw of the dice Leicester forced a penalty try after Treviso collapsed a series of scrums on their own line. George Ford converted, and Tigers had got out of jail.
Pool Two now looks like a three-way fight. The Tigers' final day fixture against the French side is likely to decide their destiny.
Harlequins remain unbeaten in Pool Three after demolishing Italian strugglers Zebre 53-5 at The Stoop.
The bonus-point win ensured that Quins only have to secure one point from their remaining two games to top the pool and hopefully secure a home draw in the quarter-finals.
Quins took some time to subdue the visitors but once Zebre picked up two yellow cards in quick succession, it was a case of damage limitation as the home side scored seven tries and collected 18 points from the boot of Nick Evans.
Tom Casson, Ben Botica, Nick Easter, Sam Smith, Danny Care and Karl Dickson crossed for Quins, who were also awarded a penalty try. Ruggero Trevisan scored Zebre's only try of the game.
Montpellier kept their Heineken Cup hopes alive with a convincing 34-21 win over Cardiff Blues at Stade Yves du Manoir.
The French club battled to a hard-fought win over the 14-man Blues last week, but their victory was far more emphatic on home soil.
Sam Warburton gave the Blues the perfect start but Montpellier responded with tries from Timoci Nagusa, Rassie Van Vuuren and Yoan Audrin.
Alex Cuthbert hit back but Johnnie Beattie sealed the victory and bonus point with his touchdown on 58 minutes.