Henri Lansbury struck a last-gasp winner to ensure that Millwall's 43-year wait for a win at Carrow Road continues.
It was heartbreaking stuff for Kenny Jackett's Lions, who overcame the 15th-minute loss of top scorer Steve Morison to then take a deserved lead courtesy of subsitute Theo Robinson.
But the second-placed Canaries hauled themselves level through Elliott Ward (77mins)and then Lansbury hit the decisive goal right at the death.
It was a sickening blow for Millwall; it is never nice to lose a game, to lose late on makes it worse, to lose as a direct result of a free-kick that was highly debatable adds to the frustration - and throw in the fact that the killer goal came in the fourth minute of injury-time when only three were shown, and you get some idea of the depth of bitter disappointment felt amongst the travelling camp.
The Lions went into this game knowing that victory would put them within touching distance of a top two spot.
But such is the nature of The Championship this season that the other results on Tuesday night leave The Lions four points outside of the Play-Offs.
And boss Jackett was keen to take the positives from the game, insisting his men must not dwell on this result.
"It is a big disappointment to go 1-0 and come away with nothing," he said. "I thought we had enough of the ball when we were ahead, but we needed a second goal because we gave the ball away cheaply at times.
However there was no lack of effort or application from us, but we didn't capitalise on our possession and chances.
Regarding their two goals, Grant Holt gets more freekicks than anyone I have ever seen but we must move on, we played with good spirit and good quality at times and we caused them a lot of problems.
We need to make sure we don't get too disappointed from this and focus on our home game with Doncaster this Saturday."
Boss Jackett made just one change to the side that beat Barnsley on Friday night, bringing in Jack Smith at left back for Scott Barron, who moved into midfield in place of Danny Schofield, with Scott Barron moving from left back to midfield.
Morison sent a 20-yarder over the bar early on, but his contribution was cut short after barely quarter of an hour when he came away from a hefty challenge clearly in some discomfort and hobbled off the pitch to be replaced by Robinson, who played up top with Liam Trotter just behind in a 4-4-1-1 formation.
It was The Lions who looked more inventive in front of goal during the opening half with Robinson showing nice control before thumping over from 22-yards.
A Barron corner was hooked clear by Ward as it was about to creep in at the far post swith keeper John Ruddy in no man's land, whilst Darren Purse also fired wide from another corner, this time taken by James Henry.
Norwich striker Simeon Jackson joined teammate Andrew Crofts in the book when he was rightly shown a yellow card for diving, earning an ear-bashing from Lions keeper David Forde, whom he had tried to imply had made contact four minutes into the second half.
It was Millwall who looked as if they were going to have the last laugh though on 55 minutes. A slick, quick attack saw Trotter feed Henry on the right, he in turn drove forward and sent over an inviting cross that Robinson swept home.
Millwall continued to press for a second with Henry blocked by Marc Tierney and Robinson outmuscled off the ball as he shaped to shoot.
But it was Paul Lambert's side who hauled themselves level with a somewhat fortuitous goal. Lansbury's 25-yard free-kick came back off the inside of Forde's left hand post, spun across the face of goal and there was Ward on hand at the far post to smash the ball home and set up an exciting final 13 minutes.
The Lions worked tirelessly to protect what looked to be a very good point as the game went beyond the three minutes of time added on that had been indicated.
But when Robinson was penalised for a foul right by the corner flag as Millwall, a huge punt upfield found Wilbraham who flicked on to Holt. He then used what could best be described as 'his bulk' to shrug off Tamika Mkandawire and play in Lansbury to sweep home the winner.
Norwich City: Ruddy, R.Martin, Crofts, Holt, Jackson (Wilbraham, 59mins), Lansbury, Fox (Hoolahan, 59mins), Lappin (McNamee,59mins), Barnett, Ward, Tierney. Subs not used: Steer, Whitbread, C.Martin, Smith.
Bookings: Crofts (36mins), Jackson (49mins), Lansbury (90+4mins)
Scorers: Ward (77mins), Lansbury (90+4mins)
Millwall: Forde, Dunne, Smith, Abdou, Purse, Mkandawire, Barron, Eastmond, Trotter, Morison (T.Robinson, 16mins), Henry (Schofield, 90+1min). Subs not used: Mildenhall, Harris, Lisbie, Laird, Marquis.
Booking: Smith (77mins)
Scorer: T.Robinson (55mins)
Ref: P. Miller