Daniel Farke's side recorded their sixth consecutive league victory to move three points clear of the chasing pack in the race to reach the top-flight.
An own goal from Mike van der Hoorn after 16 minutes gave Norwich the lead and Argentine midfielder Emiliano Buendia added a second after 24 minutes.
Marco Stiepermann knocked in the third from close-range in the 37th minute before Daniel James reduced the deficit just before half-time.
Teemu Pukki's 11th goal of the season on the hour made sure of another impressive win for the Canaries.
Leeds beat 10-man Bristol City 2-0 to climb to second in the table.
City midfielder Josh Brownhill was sent off after 55 minutes for a second booking and Leeds made their numerical advantage count.
Kemar Roofe put Leeds ahead from close-range after 69 minutes and Pablo Hernandez's header wrapped up all three points with four minutes left.
A stoppage-time equaliser from Jamie Proctor earned Rotherham a 2-2 draw in the Yorkshire derby against Sheffield United.
Mark Duffy put the Blades in front after eight minutes at the New York Stadium before the Millers levelled after 66 minutes when Jon Taylor's shot was deflected past keeper Dean Henderson, who had made several smart saves.
With just five minutes left, Blades defender Chris Basham nodded the visitors back ahead, but Proctor had the final say as Rotherham extended their unbeaten run to six matches.
Frank Lampard's Derby came from behind to win 2-1 at Sheffield Wednesday.
Adam Reach gave the Owls the lead after 12 minutes but Derby were level just before the half-hour mark through on-loan Liverpool midfielder Harry Wilson and Jack Marriott gave them the lead after 35 minutes.
Preston thrashed Blackburn 4-1 thanks to goals from Tom Barkhuizen, Callum Robinson,, Louis Moult and Alan Browne.
Nottingham Forest won 2-0 at lowly Hull, while Stoke drew 2-2 against QPR.
Millwall and Bolton drew 1-1 in a clash between two clubs struggling to avoid relegation.
Mark Beevers headed Bolton in front against his former club after 12 minutes, but Jiri Skalak's late equaliser earned the Lions a point.
Wigan and Reading played out a goalless draw at the DW Stadium.