Norwich clinched the Sky Bet Championship title after a 2-1 win against play-off bound Aston Villa at Villa Park.
Mario Vrancic sealed victory in the 86th minute as Norwich won the second tier title for the fourth time.
Norwich, who won at Villa Park for the first time in 10 games stretching back to 1992, ended the season with a 14-match unbeaten run.
Villa suffered their first defeat in 13 matches and will face a play-off semi-final against local rivals West Brom.
Norwich could have taken the lead inside the opening minute after a surge down the left wing by Onel Hernandez. He cut the ball back for Marco Stiepermann but the German midfielder pushed a shot wide.
But Norwich did not have to wait much longer to capitalise on their flying start.
Villa failed to fully clear a free-kick from Vrancic and when the ball came back to him he rolled a pass to Pukki who then fed Stiepermann on edge of the area.
Stiepermann picked out Hernandez and his centre across the face of goal was turned home from close range by Pukki.
Following their torrid opening, Villa finally came to life and were level in what was their first real attempt on goal.
After Emiliano Buendia had conceded a free-kick on the left-wing, Conor Hourihane swung a cross into the Norwich area and Kodjia's shot from six yards left goalkeeper Tim Krul flat footed before sneaking just inside the post.
Villa could then easily have taken the lead three minutes later only for Andre Green to see his shot from 10 yards blocked by Max Aarons.
Kodjia then flashed a header just over the bar from a Hourihane cross in the 32nd minute and had a shot saved by Krul four minutes later as Villa enjoyed a spell of domination.
Failing to make that pressure pay almost cost Villa on the stroke of half-time when Vrancic had a shot blocked and Hernandez hit the crossbar.
Following such an entertaining opening period, chances proved harder to come by at the start of the second half before Jamal Lewis surged on to a Stiepermann pass in the 63rd minute only to shoot wide from the angle of the six yard box.
Stiepermann was then denied by goalkeeper Jed Steer twice in the space of five minutes before Norwich pounced through Vrancic.
Vrancic was picked out by Lewis and raced forward before beating Steer with a well-placed shot from the edge of the area.