Michael McIndoe put Bristol ahead in the opening minutes of the second half, but Darren Huckerby appeared to have earned a point when he ended the Norwich goal drought eight minutes from time.
But the Robins claimed all three points thanks to late goals from their substitutes Scott Murray and Lee Trundle.
The visitors kicked off attacking the River End goal and it took only two and a half minutes for new boy, John Hartson, to produce the first shot of the game.
Adriano Basso made a diving save to deny the loan player from West Brom.
After five minutes Basso was again in action saving from Hartson, who then headed wide before setting up Adam Drury who missed a golden opportunity when he fired over from ten yards.
David Marshall made a diving save to keep out Jamie McAlister's long-range effort, then Basso could only parry a shot from Darel Russell with no Norwich player on hand to take advantage.
Drury limped off and was replaced by Michael Spillane in the 29th minute.
After a couple of wayward efforts, David Noble did bring a save from Marshall as the Robins came more into the game.
McAlister was booked in the first minute of the second half for a foul on Huckerby.
Two minutes later Bristol City went ahead when McIndoe beat Marshall at the near post with a firm header from Ivan Sproule 's right-wing cross.
It could have been worse for Norwich, but Noble fired wide and Sproule hit the sidenetting when a cross would have been a better option.
However, it was all Bristol as Norwich failed to re-discover the quality of their early play.
Both sides made a substitution with a quarter of the game to play. When Lee Croft replaced Ian Murray it enabled Huckerby to move from right to left wing. Trundle came on for Darren Byfield.
Louis Carey did extremely well to deflect Jon Otsemobor's cross before it reached the head of David Strihavka.
In the 82nd minute Huckerby dispossessed Bradley Orr on the touch-line, cut in from the left and beat Basso with a low right-foot shot.
Unfortunately for Norwich they were behind again four minutes later when Murray's right-foot shot from long range hit Marshall's left-hand post and entered the net off his right-hand post.
The third goal came when the other substitute, Trundle, cut in from the right and hit a left-foot shot from 12 yards, beating Marshall low to his right.