John-Joe O'Toole was the Sixfields goal hero as the Cobblers claimed a crucial 2-1 win over Charlton Athletic at Sixfields.
The Town midfielder struck in the 61st minute to claim his seventh goal in the past seven games and seal a thoroughly deserved win for Justin Edinburgh's team, who now move above the Addicks in the Sky Bet League One table.
Michael Smith had fired the Cobblers into a 32nd-minute lead with his first goal for the club, but the visitors levelled four minutes later through Ezri Konsa Ngoyo.
Town were not to be denied the victory though, with O'Toole driving home a low shot from 16 yards after a right-wing cross from Aaron Phillips had been headed into his path.
With other results going their way, the win sees the Cobblers move up to 15th in the table, and also sees them open up a seven-point gap between them and the relegation zone.
Town made three changes to the team that lost 2-1 at Oldham Athletic in midweek.
Right-back Neal Eardley was unavailable as his partner gave birth on Saturday morning, Keshi Anderson was dropped to the bench and Hiram Boateng left out of the 18 altogether.
The Crystal Palace midfielder had to sit it out as teams are only allowed five loan players in their matchday squad, and boss Justin Edinburgh opted for Anderson, Lewin Nyatanga, Gregg Wylde, Michael Smith and Luke Williams, who returned for his first start since the 2-1 defeat at Walsall, having recovered from a knee problem.
Aaron Phillips, who hasn't played since the loss to Bradford on January 2, replaced Eardley, while Marc Richards was recalled in attack in place of Anderson.
There was a boost for the Cobblers with Brendan Moloney returning, the Irishman being named on the bench having not featured since suffering a knee ligament injury in the 1-0 defeat to Peterborough on November 19.
Charlton included former Cobblers winger Ricky Holmes in their starting line-up, fresh from scoring a hat-trick in the Addicks' 4-3 defeat at Shrewsbury Town on Tuesday night.
After a quiet start to the game, with both teams knocking the ball around without any end product, it was Holmes who had the first sight of goal, but his 20-yard effort flew high and wide of Adam Smith's goal.
Smith then had to be off his line quickly to deal with a short backpass from Williams, before the Cobblers finally registered their first shot on goal on 14 minutes, but Smith dragged his effort from the left edge of the penalty area wide.
Both teams were being restricted to pot shots from distance, but on 20 minutes Town suffered a serious blow when Gaby Zakuani suffered what looked like a hamstring pull, and had to go off to be replaced by Zander Diamond.
The injury will be a huge frustration for player and manager Edinburgh, as it occurred when Zakuani collided with own goalkeeper Smith as they both went for the same ball over the top when there was no danger.
The Cobblers were keeping the ball well, and began to take contol midway through the half.
Diamond headed a Taylor free-kick straight at Charlton keeper Declan Rudd from a tight angle, but the home side did break the deadlock on 32 minutes with a peach of a goal.
The ball was played down the right wing and looked to be going out, but Phillips chased it down and sent in a brilliant first time cross with his right foot.
The ball was begging to be met by a Cobblers player in the middle, and it was met beauifully by Smith who sent a poweful header beyond Rudd and into the top corner from 10 yards.
Town deservedly led, but as has so often been the case this season, they alomost immediately allowed their opponents back into the game.
Holmes won a corner down the left wing and delivered it himself to the far post, where an unmarked Ezri Knosa Ngoyo went for goal.
Smith saved his initial effort, but Jordan Botaka was alive to the rebound and slammed a volley home from six yards out to level it up at 1-1.
Cobblers fans then feared the worst on 40 minutes as Williams fouled Lewis Page on the edge of the penalty area to give Holmes the chance of delivering a trademark free-kick, but thankfully as far as Town were concerend his radar was off and the ball flew five yards over.
Botaka then sent a fizzing strike just over the top as Charlton found some confidence, but it was all square at the break.
Both teams started the second half with positive intent, and it led to a really open encounter with the play switching from end to end.
Botaka could have fired Charlton in front within a minute of the restart, but Smith tipped his angled drive over the top, and another long-range effort from Lee Novak packed plenty of punch, but not enough accuracy as it whistled over the bar.
The Cobblers were probing away, looking for an opening, but they were struggling to create anything clearcut, until they regained the lead on 61 minutes.
It stemmed from an effort from Jorge Teixeira, who gifted possession to Williams in the centre circle.
The Town man played the ball wide to Smith on the right, who in turn fed Phillips on the overlap. His cross was headed clear, but only to O'Toole 16 yards out and he drilled the ball abck with interest and into the net.
It was the midfielder's seventh goal in his past seven games.
Charlton struggled to muster any sort of positive response to Town's second goal, while the Cobblers tried to keep things tight.
The visitors kept trying to create, but the Cobblers hounded them whenever they had possession, with striker Smith and Richards the first line of defence.
Neither side seriously threatened the goal again until the 87th minute, but Smith failed to get a proper connection on Taylor's wicked free-kick from the left.
Cobblers: A Smith, Phillips, Zakuani (Diamond, 22mins), Nyatanga, Buchanan, Taylor, O'Toole, Williams (P Anderson, 68 mins), Wylde (McCourt, 80 mins), Richards, M Smith. Subs not used: Moloney, K Anderson, Beautyman, Cornell.
Charlton Athletic: Rudd, Page (Chicksen, 73mins), Bauer (Teixeira, 46mins), Crofts,, Mageninis, Holmes, Botaka, Kona Ngoyo, Ulvestad, Byrne, Novak (Watt, 76mins). Subs not used: Jackson, Phillips, Aribo, Da Silva
Referee: Ben Toner
Attendance: 7,118 (Charlton fans 1,424)