The relegation battlers beat the promotion-chasing Cobblers courtesy of Ashley Chambers and an own goal from John Johnson to maintain their mini-revival.
The hosts started brightly and Ben Tozer's 25 yard drive was tipped over by Michael Ingham.
But Chambers gave City a seventh minute lead, turning Johnson in the box from Matty Blair's deep cross before shooting under Lee Nicholls from 10 yards.
Cobblers hit back and Clarke Carlisle's header from Chris Hackett's corner was cleared off the line by Tom Platt.
Blair almost doubled City's lead with a dipping 25-yard volley which Nicholls did well to tip over.
Johnson went close to redeeming himself when he headed wide, Jake Robinson's drive was tipped over by Ingham who then denied Adebayo Akinfenwa with a point-blank save. In between, Blair missed a glorious chance when he somehow managed to hit the post from a yard following a scramble in the six-yard box.
The Cobblers stepped up a gear after the restart and Ingham dived full-length to palm away Akinfenwa's header and the top scorer also headed over.
Roy O'Donovan tested Ingham late on but Cobblers sustained pressure failed to produce any other serious chances as City's defence held firm.
With five minutes left Blair broke into the box and beat Nicholls with Johnson only able to turn the ball into his own net. And it took a fine save from Nicholls to deny Chambers moments later.