The Canaries won their last home game of the season in a party atmosphere and need just one point from their last two games to win the championship.
However, Preston kept the result in doubt until the last kick of the game.
The home side kicked off and took a second minute lead when Leon McKenzie nodded the ball past Jonathan Gould from five yards after Darren Huckerby's shot came to him via Graham Alexander's block.
Preston fought back and were on level terms in the fifth minute when Paul McKenna rifled the ball high into Robert Green's right-hand corner from ten yards after Alexander's throughball was laid off by Dickson Etuhu.
Gould denied Huckerby with a super save in a one-on-one situation and McKenzie's shot was cleared off the goal line.
Damien Francis put City back in front after 28 minutes when he played a one-two with Kevin Cooper before hitting a 25-yard left-foot drive which beat Gould high to his right.
Green was forced to tip over a long-range shot from Simon Lynch before Huckerby's shot was blocked and Malky Mackay fired over.
At half-time Ricardo Fuller replaced Richard Cresswell and was promptly booked for a foul on Marc Edworthy.
Three minutes into the second half David Healy's right foot swept the ball past Green from ten yards when he met Alexander's low right-wing cross.
The Lilywhites gave the home side few chances after that but in the 68th minute Huckerby set up Francis only for him to fire over.
Preston were reduced to ten men for the final 20 minutes when Marlon Broomes got a second yellow card for a foul having been booked for dissent just before the break.
The home fans had to wait until the 84th minute to clinch victory.
Huckerby cut in from the left wing and slammed the ball under Gould from eight yards with popular sub Iwan Roberts rushing in at the far post just in case there was a chance to mark his final home game for Norwich with a goal.
There was still time for Green to save a point-blank shot from Dickson Etuhu before the celebrations and lap of honour got underway.