Birmingham took the lead after five minutes when Bright Osayi-Samuel fed Vicente, and the Spanish winger, signed last month from Deportivo Alaves, raced down the right and finished at the near post.
The Blues were buzzing and August Priske chested the ball down and unleashed an overhead kick, which was saved by Vladan Kovacevic.
Priske then found Ducksch with a first-time pass and the German rolled it past Kovacevic on 14 minutes for his ninth of the season.
Jonathan Panzo fluffed a chance to make it 3-0 when he turned Demarai Gray’s cross wide of the near post.
Norwich were transformed in the second half and Birmingham goalkeeper James Beadle saved from Mohamed Toure and Kellen Fisher, before Toure hit the outside of the post.
The Canaries deservedly pulled one back on 67 minutes when McLean fired into the top corner from Toure’s ball.
Beadle repeatedly saved Birmingham, and he twice denied Anis Ben Slimane and Mathias Kvistgaarden in a frantic finale.
