Two Teemu Pukki goals either side of half time followed by a late Oliver Skipp finish on the break saw Norwich City claim their second St Andrew's victory in a week.
Birmingham found themselves level through Ivan Sanchez in the first half, but Aitor Karanka's side failed to trouble their visitors after the interval.
Norwich are now 10 points clear of Brentford and Watford in second and third after winning four consecutive Championship games.
Story of the game
Birmingham threatened from a couple of deep free-kicks in the opening exchanges, but it was Norwich who had the first real opportunity of the contest. Kenny McClean received possession inside the area, but his close-range effort was saved by Neil Etheridge after seven minutes.
Blues pressed well from the start, as they did a good job of stopping Norwich from playing passes into dangerous central areas. They had a half chance just after the 20-minute mark when Gary Gardner saw his header deflect wide after an out-swinging delivery from Sanchez.
Although the away side were far from getting into their usual rhythm, they did manage to draw first blood after 26 minutes. And it was from a move down the left side, as McClean fed the ball through to Pukki, who fired home brilliantly from a tight angle.
Karanka’s men came close to levelling proceedings just moments later, as Tim Krul was called into action twice within the space of a minute. Maxime Colin’s wicked volley from outside the area stung his palms, and the Dutch stopper parried the ball into the path of Scott Hogan who failed to convert the rebound.
Then, the creative Sanchez delivered a teasing inswinger from the right which was only partially cleared. The ball fell to Jeremie Bela, but he could only scuff his shot against the cut-up St Andrew’s turf.
Norwich were on the back foot, but they should have had a second as the usually reliable Teemu Pukki missed a penalty. Etheridge brought down Todd Cantwell in the area, but Pukki’s spot-kick lacked conviction and it was kept out by the legs of the ‘keeper.
Pukki’s miss appeared costly, as Blues found their equaliser just moments later. After getting caught out playing from the back, the ball fell to Sanchez who hit a thunderous strike straight at Krul. He managed to parry it but only as far as the Spanish winger, who nipped in ahead of the goalkeeper to level the game.
The Canaries were rattled, and they almost found themselves behind four minutes before the interval, but Hogan spurned a glorious opportunity. Gardner lifted the ball over the top into the frontman’s path, but he could only put it over the bar.
The second half was much less eventful, as the contest became scrappy with very few clear chances created. It took until the 75th minute for either team to create a decent chance, and it was Norwich who upped their game to eventually claim the points.
With 15 minutes to go, Pukki netted his 17th goal of the season in fortuitous fashion. Emiliano Buendia worked a yard of space for himself just outside the area, and he managed to get a shot off that was blocked by Harlee Dean. Unfortunately for the hosts, the ball fell to Pukki who scored a simple tap in from close range.
As Blues chased an equaliser deep into stoppage time, Norwich raced away and added a third on the counter-attack.
Lukas Rupp was given the freedom of the Birmingham half as he ran through on goal, before generously squaring it for Skipp to score his first-ever senior strike.
Birmingham City (4-1-4-1)
Etheridge, Colin, Dean, Clarke-Salter, Pedersen, Sunjic, Sanchez, Harper, Gardner, Bela, Hogan.
Norwich City (4-2-3-1)
Krul, Aarons, Hanley, Zimmermann, Giannoulis, Skipp, McClean, Buendia, Vrancic, Cantwell, Pukki.