Reading surrendered a one-goal lead as Norwich hit back with four goals to ensure they were crowned as Championship winners on their way back to the Premier League.
Josh Laurent gave the Royals the lead after 12 minutes with a free header, but Kieran Dowell netted either side of half-time to give Norwich the lead.
Xavier Quintella scored a stunning free-kick before Teemu Pukki pounced upon Tom Holmes’ mistake to wrap up the game.
The Royals lost the chance to qualify for the play-offs last weekend with a draw against Swansea City and now need a win to confirm a seventh-placed finish on the last day of the season to finish ahead of Cardiff City.
Reading manager Veljko Paunović gave young Serbian midfielder Dejan Tetek a start in midfield, while the young pairing of Holmes and Lewis Gibson started together in central defence.
The Canaries created the first good chance of the match with eight minutes on the clock when Lewis Gibson gave the ball away cheaply which allowed Emi Buendia to venture into the box, but the Royals defender did enough to press the attack who put his shot wide.
Having made a strong start to the match, Reading took the lead in the 12th minute.
With a well positioned free-kick wide on the right-wing, Michael Olise swung in an enticing cross to the back post as he picked out an unmarked Josh Laurent who nodded the past Tim Krul from close range.
Max Aarons picked up the first booking of the game for a foul on Lucas João.
Norwich began to threaten the Royals as they looked to get back in the game. With already 25 Championship goals to his name this season, Pukki came close to a 26th but Rafael Cabral parried his shot away.
Pukki then went even closer just moments later but Tom Holmes was perfectly placed to hook the ball off the line.
Norwich came back into the contest and found their reward with an equaliser on the half-hour mark.
Todd Cantwell’s through ball was intercepted by Tom Holmes but the young Royals centre-back put his goalkeeper in trouble with an under-hit back pass. Rafael could only clear the ball to the edge of the box where it was stolen by Kieran Dowell who put the ball into an unguarded net to level.
Reading pressed to go back in front and went close when John Swift delivered a ball into the back post to find Laurent, but he couldn’t control to keep the ball in play.
Swift then had an inviting opportunity with a free-kick from shooting range but got his technique wrong as he blazed the ball over the bar.
Olise then had a huge opening to restore Reading’s lead just before the break but fluffed his lines as he scuffed a shot wide from just 10 yards out after Ovie Ejaria had forged the chance for his teammate.
Rafael was called into action early in the second-half as he kept Dowell from grabbing a second of the game after he sprung to his right to get fingertips to the shot to push it wide. From the resulting corner, Rafael made an equally terrific stop as he stretched to tip Kenny McClean’s header over the bar.
Norwich kept the pressure up with a string of corners in quick succession early in the half bt the Royals stayed determined to shut Norwich out.
Paunović made his first witch of the game after an hour as Yakou Méïté replaced Swift.
Norwich got themselves in front and on the brink of being crowned champions when Dowell bagged his brace in the 64th minute.
Cantwell looped a clever ball over the top to find the run of Dowell as he evaded Andy Yiadom and drilled the ball into the far corner from an acute angle.
Norwich should have sealed the game when Joao lost the ball cheaply deep in his own half to Grant Hanley, and the ball fell for Pukki but the Finland international couldn’t finish as he clipped his effort over the target.
Pukki had yet another chance to find the net but was again denied by Rafael who stayed focused to keep Reading into the game as he stood up tall to make the save.
The Canaries finally sealed the points and their Championship trophy with a third goal of the afternoon as Xavier Quintilla scored a sublime free-kick.
From 20 yards out, the full-back curled an unstoppable effort over the wall and into the top corner.
Norwich then added a fourth with five minutes to go as Holmes underhit another backpass which was pounced upon by Pukki who showed composure to take the ball around Rafael and rolled the ball in.
Reading play their final game of the 2020/21 season at home to Huddersfield Town next Saturday.
Norwich City: Krul, Aarons, Omobamidele, Hanley, Quintilla, Skipp, McLean, Buendia, Dowel, Cantwell, Pukki
Subs: Vrancic, Hugill, Placheta, Nyland, Stiepermann, Sorensen, Hernandez, Mumba, Tettey
Reading: Rafael, Richards, Gibson, Holmes, Yiadom, Laurent, Tetek, Olise, Swift, Ejaria, João
Subs: Esteves, Baldock, Southwood, Aluko, Semedo, Dorsett, Pușcaș, Méïté, Camara
Goals: Laurent 12′, Dowell 30′, 64′, Quintilla 78′, Pukki 85′