Jason Crowe scored a 15th-minute winner as Northampton dumped Millwall out of the Carling Cup for the second successive season at the first round stage.
It was a frustrating night for Kenny Jackett's Lions, who recovered from a poor opening half an hour to dominate and carve out a stack of scoring chances without finding that killer touch in front of goal.
Den boss Jackett made three changes to the side beaten at Oldham on Saturday with Chris Hackett, Gary Alexander and Andy Frampton stepping in for Alan Dunne, Tresor Kandol and the suspended Paul Robinson respectively.
At the weekend it was Millwall who stole into the lead after just 13 seconds and on this occasion was The Cobblers who were only denied a first-minute opener when Ryan Gilligan's close range effort from a Liam Davis cross hit the outside of the post.
Marc Laird took the full force of a Bayo Akinbayo shot to block the danger on 10 minutes, but The Cobblers forged ahead just six minutes later when Crowe hammered home from 12 yards following a low cross from the left.
It took The Lions 34 minutes to register their first real noteworthy attack of the game when nice interplay between Ali Fuseini, Jimmy Abdou and Gary Alexander set up Lewis Grabban, but the young striker lashed wide.
Second later Alexander's persistence earnt Millwall their only corner of the half. Dave Martin's delivery was met by Zak Whitbread, only for the defender's goal-bound header to be cleared by former Lion Leon Constantine.
Jackett made a couple of changes at the start of the second period, bringing on Ahmet Brkovic and Tresor Kandol for Abdou and Alexander, and the duo made an instant impact as the tempo of Millwall's play picked up.
Kandol headed wide with his first touch from a Martin cross seconds after the restart and then Fuseini blasted high and wide with a first-time 22-yarder.
A great pass by Martin picked out Grabban on 52 minutes. Grabban did well to create an opening to shoot, only for his effort to be parried by keeper Mark Bunn. The ball spun up in the air and agonisingly spun inches away from Laird just two yards out.
Millwall continued to work tirelessly to find a way back in to the match as Kandol sent another header narrowly wide and Martin's deep cross was claimed at the second attempt by keeper Bunn.
A powerful run by Hackett from the edge of his own area to a yard outside the visitors' box ended with Kandol getting on the end of a teasing deep cross, but steering his header a yard wide.
Grabban was denied an equaliser his - and Millwall's - effort deserved 17 minutes from time when he picked up Fuseini's pass and rattled the post with a thumping 20-yard effort.
The Lions knew it wasn't going to be their night with two minutes remaining when Kandol was flattened by Gabor Gyepes as he stole in at the far post trying to connect with another Hackett cross. Unfortunately referee Clive Penton and his assistants were unsighted, although the howls of protest from the home fans behind the South Stand goal left them in no doubt that an offence had occured.
Four minutes of injury time saw Jackett's side huff and puff, but for all their effort, Millwall could not find a way through a resilient Cobblers' rearguard.

Advertisement

Millwall: Forde, Hackett, Frampton, Fuseini, Craig, Frampton, Laird, Martin, Grabban, Alexander (Kandol, 46mins), Abdou (Brkovic, 46mins). Subs not used: Edwards, Dunne, Harris, Smith, Forbes.
Bookings: Frampton (17mins), Grabban (41mins), Hackett (60mins)

Northampton Town: Bunn, Crowe, Jackman, Hughes, Gyepes, Doig, Constantine (Holt, 75mins), Akinfenwa, Davis, Gilligan (Osman, 59mins), Guttridge (Coke, 59mins). Subs: Larkin, Henderson, Dunn, Dolman.
Bookings: Doig (31mins), Guttridge (41mins), Bunn (82mins)
Scorer: Crowe (15mins)

Ref:
Clive Penton
Att: 3,525 (away 237)