Jack Diamond's fantastic strike midway through the first-half had pulled Town level but despite some impressive passages of play Simon Weaver's side couldn't force their way back into the game after the break.
Town made one change to the side that fell to defeat at home to Forest Green Rovers with Lewis Page returning from suspension. Simon Power dropped to the bench whilst fit-again Ryan Fallowfield was named amongst the substitutes.
The visitors were forced into one change with Nicke Kabamba coming in for the injured Shaun McWiliams.
The two managers were also renewing acquaintances from their days in National League North when Northampton boss Jon Brady was in charge at Brackley Town.
Town almost fell behind in the opening minute of the game when Connor Hall was harshly adjudged to have fouled Nicke Kabamba on the edge of the area. From the resulting free-kick Mark Oxley and the defence were grateful to see Sam Hoskins's free-kick canon back off the post to safety.
They did find themselves a goal down on eight minutes, however, when after conceding a soft corner the static Town defence saw Horsfall poke home unchallenged at the far post.
Despite the early setback Town did steady themselves and slowly worked their back into the contest with the visitors content to sit on the lead.
And on 23 minutes they were level. Picking up the ball on the left Diamond used Lewis Page's run as a decoy to cut inside and arrow home to level the game at 1-1.
Alex Pattison had a fantastic opportunity on 27 minutes when he launched one of his trademark forward runs but his strike was too close to Liam Roberts in the Cobblers' goal.
Town were now the side with greater purpose as they looked to get a lead heading into the break.
Luke Armstrong had an effort chalked off for off-side before he took advantage of defensive hesitancy on the stroke half-time, forcing Roberts into a low save with George Thomson's follow-up effort blocked by the visitors defence.
After a positive end to the opening forty-five minutes Town almost gifted the lead back to Northampton at the start of the second-half when Thomson's under hit backpass afforded Kabamba a gilt-edged opportunity. Oxley was quick off his line though to smother the threat.
It was not long before the visitors restored their lead though. And Town were punished again ar a set piece when Guthrie rose highest to head powerfully beyond Oxley.
Town then saw Warren Burrell go into the book for a mistimed tackle.
Pattison was then caught in possession deep in the Northampton half and the visitors broke quickly and dangerously and only an Oxley save prevented the lead from being doubled.
On 70 minutes Simon Weaver made his first change of the day by bringing on Fallowfield in place of Nathan Sheron.
With Town failing to breach the visitors defence there was a further change with just over 10 minutes remaining with Jack Muldoon coming on for Lloyd Kerry and a switch to 4-4-2.
The change failed to have the desired impact though and Northampton held on for the win, a result that consigned Town to their fourth consecutive home defeat.
TOWN: Oxley, Sheron (Fallowfield, 69), Burrell, Hall, Falkingham, Kerry (Muldoon, 79), Pattison, Thomson, Diamond, Armstrong.
Subs not used: Cracknell, Power, Orsi.
Goals: Diamond (23)
Booked: Burrell (52)
Northampton Town: Roberts, McGowan, Sowerby, Guthrie, Horsfall, Hoskins (Flores, 88), Lewis, Kabamba, Pinnock, Kolki, Rose (Connolly, 85).
Subs not used: Maxted, Ashley-Seal, Dyche.
Goals: Horsfall (8), Guthrie (49)
Booked: (McGowan 55), Rose (69), Sowerby (83)
Referee: Carl Brook