A GUTSY display by the Canaries saw them stand toe to toe with Chelsea and claim a point and their first Barclays Premier League clean sheet of the season with a 0-0 draw.
The result ensures Paul Lambert has never been doubled as City boss - and though Chelsea enjoyed more possession and had chances to win the game, City were also always in with a shout and gave their affluent visitors plenty of scares.
Holt and Morison kept the Chelsea defence busy all afternoon and had chances, while at the other end Fernando Torres missed an easy chance from eight yards as his goal drought continued.
Following the result, City manager Paul Lambert said: "The gulf is huge and people should never underestimate that. What Chelsea have done over the past ten or twelve years compared to where we have come from. It's an unbelievable performance and I'm so proud of the lads.
"One thing we've got is unbelievable enthusiasm for the game and a real hunger. If they keep that throughout their careers they'll be alright both as individuals and as a team. I think we've been excellent."
And on a man of the match performance from defender Zak Whitbread, Lambert said: "He was excellent Zak. Eveytime he's played for me he's never let me down. He's been brilliant and so has Daniel [Ayala] who is just 21-years old and the pair of them are doing brilliantly at the minute."
Lambert made two changes to the side which won 2-1 at West Brom last weekend, with David Fox replacing Wes Hoolahan in midfield and skipper Grant Holt coming into the attack alongside Steve Morison, with Simeon Jackson joining Hoolahan on the bench.
Chelsea kicked off and dominated possession in the first five minutes with some slick passing, without ever seriously threatening the City goal - and it was the Canaries who carved out the game's first chance, Morison's follow-up blocked by Cech after the Chelsea 'keeper parried Pilkington's low cross into his path.
Morison then nearly turned provider in the 10th minute, a deft touch sending Holt sprinting towards the Chelsea box before he cut inside his man and fired a low effort a foot or so wide of the post.
Ten minutes later the roles were reversed as Holt's long diagonal ball found Morison in the box and he drilled a fierce shot into the side-netting from a tight angle.
Just after the half-hour mark Chelsea suffered a blow when England international midfielder Frank Lampard suffered an injury and as he limped off City came close as Johnson's shot took a wicked deflection off a defender, but Cech did well to adjust and make the save.
Chelsea then made the game's first substitution as Florent Malouda came on to replace Lampard.
There were chances at either end as the game approached the 40th minute, first Cech acrobatically palming away Holt's cross as Morison waited to pounce and then at the other end Mata's partially-deflected shot collected well by Ruddy.
As the game approached half-time Mata carved out a chance for himself as he jinked into the box cleverly only to blaze over from a good position.
City 0, Chelsea 0
Unusually the first free-kick of the game didn't come until the 47th minute, as Morison was penalised as he tried to dribble past two Chelsea defenders on the edge of the visitors' box.
In the 53rd minute after a spell of pressure Luiz was well forward for the visitors and tried his luck with a curling effort which sailed over the bar, Ruddy looking to have it well covered.
On the hour-mark Torres seemed certain to break his goal drought as Bosingwa teed him up on the edge of the six-yard box - but the Spanish striker prodded a poor effort wide of the post.
Chelsea were pressing and Mata was the next to have a chance for the Londoners, blasting an angled drive which Ruddy parried superbly.
Three minutes later the Barclay was up in arms as referee Mark Clattenburg and his officials failed to spot a clear handball on the edge of his own box by Raul Meireles.
The game was finely-poised and Chelsea had the next chance of note in the 74th minute, firing in a first-time effort from 20 yards which Ruddy got down smartly to save.
In the 77th minute Chelsea made another change, Torres leaving the pitch after another blank afternoon to be replaced by the giant figure of Lukaku. It sparked a flurry of substitutions as Fox and Morison made way for Crofts and Jackson for City and Essien came on for Meireles.
There was a great atmosphere in a packed Carrow Road as the game entered the closing stages, though the home fans were given pause for thought when Cole fired an ambitious long-range volley narrowly wide in the 86th minute.
As the game entered injury time City made their final change of the game, Elliott Bennett replacing Andrew Surman.
Ruddy, Martin, Johnson, Morison (Jackson 78), Whitbread, Holt (c), Surman (Bennett 90), Pilkington, Fox (Crofts 78), Naughton, Ayala. Subs not used: Steer, Drury, Hoolahan, Wilbraham.
Cech, Cole, Luiz, Ramires, Lampard (Malouda 37), Torres (Lukaku 77), Mata, Meireles (Essien 80), Bosingwa, Sturridge, Terry (c). Subs not used: Turnbull, Ivanovic, Romeu, Bertrand.
Final score: City 0, Chelsea 0