Reading youngster Andy Rinomhota scored in the final minute of added time to earn a 2-2 draw and end Norwich's eight-match winning streak in the Sky Bet Championship.
Rinomhota had the final say after the Canaries had staged a dramatic fightback of their own to overturn a first-half deficit.
Yakou Meite had fired Reading in front after 30 minutes completely against the run of play but City finally made their dominance count with two late goals.
Ben Godfrey cracked home a glorious equaliser after 85 minutes and Christoph Zimmermann then made it 2-1 moments later, before a courageous Reading side conjured up a late leveller.
Norwich are six points clear at the top with just five games to play and remain firmly in the driving seat, while the point was a useful one for the Royals in their battle for survival.
Norwich dominated the first half, only to be hit by a sucker punch from struggling Reading, who scored with virtually their only dangerous attack of the opening 45 minutes.
The visitors were handed a chance to counter-attack down the left when Marco Stiepermann lost possession, and they made the most of it as Modou Barrow raced to the byline and crossed for Meite to apply an emphatic close-range finish.
It was the first time the Canaries had been behind in a game since their 3-2 win over Bristol City in February and was certainly rough justice, with the hosts having all the other chances of the half, despite being slightly below their best.
Before the goal Onel Hernandez twice brought out good saves from Emiliano Martinez, who also did well to hold a Stiepermann drive late in the half.
Kenny McLean then sent over a low cross which top scorer Teemu Pukki diverted narrowly wide before the recalled Todd Cantwell volleyed just over when well placed.
Daniel Farke's side almost got back on level terms three minutes into the second half when Tom Trybull's shot from 25 yards took a deflection and hit the post, with Martinez flat-footed.
As the game headed towards the hour mark Martinez then made a fantastic save to keep out Pukki's header after an inch-perfect cross from Jamal Lewis had given the Finnish frontman a clear sight of goal.
A rare Reading attack saw Meite fire wide from a decent position after good work from Barrow but the Canaries were still in the ascendancy and carved out another good chance when Hernandez cut inside and fired just wide.
Pukki was then crowded out as he prepared to pull the trigger before Norwich deservedly got back on level terms in the 85th minute.
It was a brilliant effort, with Godfrey playing a one-two with Stiepermann before drilling a powerful shot into the top corner.
It got even better for Norwich a couple of minutes later when they made it 2-1 through skipper Zimmermann, who powered home a header from a McLean corner to send the Carrow Road faithful into raptures.
Martinez later made a magnificent save to keep out a point-blank header from substitute Jordan Rhodes and that was to prove crucial, with an attack from Reading in the sixth minute of added time ending with Rinomhota cracking home a superb first-time effort to make it 2-2.
ga('create', 'UA-72310761-1', 'auto', {'name': 'pacontentapi'});
ga('pacontentapi.set', 'referrer', location.origin);
ga('pacontentapi.set', 'dimension1', 'By Press Association Sport staff');
ga('pacontentapi.set', 'dimension2', '050f0e3c-9b86-48b4-a953-1de2a62cbec7');
ga('pacontentapi.set', 'dimension3', 'paservice:sport,paservice:sport:club-news,paservice:sport:football,paservice:sport:match-reports');
ga('pacontentapi.set', 'dimension6', 'story');
ga('pacontentapi.set', 'dimension7', 'composite');
ga('pacontentapi.set', 'dimension8', null);
ga('pacontentapi.set', 'dimension9', 'sport:football');
ga('pacontentapi.send', 'pageview', { 'location': location.href, 'page': (location.pathname + location.search + location.hash), 'title': 'Norwich denied by last-gasp Reading equaliser'});