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.

