The Cobblers missed a glorious opportunity to break the deadlock three minutes before the break when Tommy Fraser brought down Paul Rodgers, but Adebayo Akinfenwa saw his penalty saved by Chris Martin.
And that miss proved costly two minutes into first-half stoppage time when former Cobbler Marc Richards scored from the spot after Chris Dunn had brought down Louis Dodds after Dean Beckwith's back-header fell well short.
But Akinfenwa redeemed himself six minutes after the restart when he successfully converted from the penalty spot for his ninth goal of the season. It came after he was pulled back in the box by John McCombe, who was dismissed with a straight red.
Dodds almost won it for Vale, but was denied by Dunn, who also saved the rebound from Richards.