There was no festive cheer at Sixfields as Bury became the latest visiting team to leave with a full complement of league points.
Marc Richards opened the scoring for Town with his 11th goal of the season and Chris Hackett notched his first for the campaign with a goal direct from a corner.
But between those two moments there were three Bury goals, with Andrew Tutte, Tom Soares and Danny Mayor securing a 3-2 win for the Shakers.
It represents an 11th defeat in the past 14 games for the Cobblers and extends their losing sequence to four matches.
On a dark Boxing Day afternoon, with the temperature struggling to get above zero and the drizzle hanging in the air like a post-Christmas hangover, the Cobblers lined up in a 3-5-2 system with Ben Tozer, Zander Diamond and Gregor Robertson as the central defenders and Danny Alfei and Evan Horwood employed as wing-backs.
The return of Horwood from injury has given manager Chris Wilder new options in defence and the three-man back line is one he has been keen to use - but has been unable to do - at several points of the campaign.
The home side made a bright start, with Lawson D’Ath seeing a swiftly-taken shot well blocked by Lainton at his near post after a speedy counter-attack.
They had the lead after only six minutes, Ivan Toney producing an exquisite piece of skill on the edge of the box to turn his marker and although a covering defender got a challenge in, the ball broke straight to Richards.
Town’s number nine rarely looks gift horses in the mouth and did not do so on this occasion, sidefooting past the goalkeeper for his 11th of the season.
Bury did not look a confident side but had a shot deflected onto the top of the goal - with Matt Duke worried - after Darren Carter had slipped and coughed up possession in midfield.
Duke had to be at his best to make a covering save and amend his own error after coming for a ball which Gregor Robertson had headed back into the area where he expected his goalkeeper to be.
Mayor should have drawn his side level when he used his pace to burst clear of the defence but sidefooted wide with only Duke to beat and with a goal looking a certainty.
Those warnings went unheeded but it still took a fine strike to beat Duke, Tutte registering from fully 25 yards to level the game.
While that was monumental, the second was mundane, a straightforward downward header by Tom Soares at a corner in the final minute of the first half.
The home side made a brisk start to the second half with a penalty appeal and a blocked Stewart Murdoch shot but Duke still had to be at his best to keep out another Soares effort, which he struck after a perfectly-timed late run into the box.
Bury’s third came almost out of nothing but was very well-taken, Mayor stepping outside Ben Tozer and rifling a shot beyond Dyke and into the roof of the net.
It was difficult to see what led to the altercation between Toney and White which saw both players fighting on the ground behind the goal but it meant the game ended with 10 a side.
Hackett sparked something of a revival when he curled a corner straight over Lainton and into the net with 14 minutes to play and the winger saw another shot deflected wide for a corner.
The final goalscoring chance of the game fell to Gregor Robertson, who headed wide at the second phase of a late - and ultimately futile - corner.
Cobblers: Duke; Alfei, Diamond, Tozer, Robertson; D’Ath, Murdoch, Carter, Horwood; Toney, Richards
Subs: Hackett (for Alfei 46), Mohamed (for D’Ath 63), O’Toole (for Murdoch 63)
Not used: Snedker, Collins, Hackett, Langmead, Byrom
Bury: Lainton, White, Cameron, El-Abd, Hussey, Soares, Etuhu, Tutte, Mayor, Nardiello, Hope
Subs: Lowe (for Nardiello 32), Jones (for Hope 65), Sedgwick (for Mayor 90)
Not used: McNulty, Adams, Rose, Burgess
Away fans: 302