A penalty two minutes from time by Tom Homer gave London Irish their first Aviva Premiership win of the season.
Northampton were left to feel a sense of grievance as there seemed to be an Irish knock-on as Jonathan Joseph unloaded to Homer just prior to the hosts being penalised.
It was an undistinguished game, and a draw would have been a fairer result as neither side was able to produce any flowing rugby despite the excellent playing conditions.
London Irish took a seventh-minute lead when Homer kicked a 30-metre penalty after Tom Mercey was punished for hauling down Nick Kennedy at a line-out.
Within three minutes the Saints were level. A crunching tackle by Chris Hala'ufia on Paul Diggin was adjudged to be high by the touch judge and Ryan Lamb kicked the equalising penalty.
Irish should have restored their advantage but Homer's penalty attempt from 35 metres out rebounded back off a post.
Northampton scrum-half Martin Roberts made the first clean break of the game and his long pass found Noah Cato but the wing was easily hauled down.
Dan Bowden then split the home defence with an eye-catching run but Irish gave away a penalty just as they appeared likely to threaten the home line.
Northampton exerted pressure on the Irish eight at the set scrum but they could not make that pay in terms of points as both sides made frequent elementary errors.
Eventually two neat breaks from Roberts sparked the game into some life to enable the home side to build up some pressure in the opposition 22.
London Irish were penalised and Lamb knocked over a simple penalty, but with the last kick of the half the outside-half missed with another straightforward attempt after Irish prop Leo Halavatau was sin-binned for dragging down a maul.
In Halavatau's 10-minute absence, Northampton never looked like extending their 6-3 interval advantage as Irish had the better of the opening exchanges of the second half.
The visitors then tied up the scores when Homer kicked a simple penalty after 51 minutes.
A poor restart kick from Lamb resulted in a scrum on halfway at which the Saints were penalised, but Homer's strike fell narrowly short.
The first try went to the visitors when Hala'ufia produced a storming run to brush aside four home tacklers before offloading to Topsy Ojo. The wing was tackled just short of the line but the ball was moved along the line for Kennedy to outflank the cover and dive over in the corner.
Northampton immediately made two changes, bringing on Brian Mujati and Stephen Myler, with the latter having a quick chance to make an impact but he fired wide with a 40-metre penalty attempt.
With 10 minutes remaining the Saints twice opted not to kick penalties in favour of a kick to the corner and a forward drive, and it paid dividends when referee Martin Fox awarded a penalty try as Irish once again offended at the scrummage area.
Myler converted to put Northampton in front but there was still time for Homer's late penalty winner.