Norwich City had to settle for a point even though Charlton Athletic had to play with ten men for most of the game.
David Marshall appeared to have Zhi Zheng's shot covered, but the ball sneaked under his arms to give Charlton the lead midway through the first half.
The visitors were reduced to ten men when Sam Sodje was dismissed for a two-footed tackle on Darel Russell, but a well-organised defence and a superb Nicky Weaver kept Norwich out until the 73rd minute when Russell equalised with a glancing header from Darren Huckerby's left-wing corner.
Charlton kicked off attacking the River End goal, but Norwich had the first shot on target in the fifth minute when Russell's angled drive was saved by Weaver.
In the 12th minute Matty Pattison crossed for Jamie Cureton who headed straight at Weaver.
Huckerby went close with a curling shot and when Ched Evans tried a similar effort it led to a corner. Pattison fired it in from the right for Jason Shackell to power a header goalwards, but Weaver produced a brilliant one-handed save to keep the scores level.
Against the run of play the visitors went ahead with Zheng beating Marshall from 20 yards low to his left.
The home keeper did much better to save Jerome Thomas' shot, then Cureton was only inches wide with a long-range effort.
Marshall made two more important stops before Sodje was dismissed.
Weaver did well to keep out a free-kick from Mo Camara and Russell was only inches away with a low drive.
The home side found it difficult to break down a compact Charlton defence and it was no surprise when Lee Croft replaced Jimmy Smith on the City right after 62 minutes.
Evans headed wide and Huckerby fired into the side-netting, but the equaliser came when Huckerby's corner was headed in by Russell.
Charlton defended resolutely and City's cause was not helped when the referee only added three minutes on at the end, enabling the visitors to leave Carrow Road with a hard-earned point.