Match ends, Birmingham City 0, Norwich City 2.
Norwich City scored a goal in each half to keep bottom club Birmingham City rooted to the foot of the Championship.
Alex Pritchard got the opener from a clever set-piece, angling into the top corner when James Maddison touched a low free-kick to the right.
Pritchard's reverse pass then sent Josh Murphy through to finish on 71 minutes, rounding home keeper David Stockdale to shoot home right-footed.
Steve Cotterill's disappointing Blues managed just two shots on target.
Injury-hit Birmingham, severely handicapped by their lack of strikers, have scored just five goals since Cotterill took charge. And Lukas Jutkiewicz, drafted back into the side in place of the suspended Sam Gallagher, failed to make much impression.
Their best chance came when defender Jonathan Grounds went on a run, finishing with a curling shot towards the far top corner which forced Angus Gunn to make a fingertip save.
Having picked up just two points out of a possible 21 from their last seven games, they remain three adrift of safety.
Norwich, who were without Birmingham old boy Cameron Jerome, climb to 15th after their first away win in two months - and only their second win in 10 matches. And it needed two outstanding late saves from Stockdale to prevent an even heavier defeat.
Birmingham City manager Steve Cotterill told BBC WM:
"The first 33 minutes did not feel like a step back but then we conceded a goal. The first goal was always going to be key. They probably knew that as well.
"We've made two mistakes for the goals. But I don't want to persecute individuals. People do make mistakes and we're getting burnt for everything at this moment in time.
"Everyone knows the problem. We've lost Isaac Vassell, Che Adams and now also Sam Gallagher, who'd just scored two in two. If anything had happened to Lukas Jutkiewicz, I don't know where we'd have been for a centre-forward. We wouldn't have had one."
Norwich City head coach Daniel Farke told BBC Radio Norfolk:
"Our last home game (against Brentford) was really awful and we needed a reaction. To get a first clean sheet in 11 games was important. We created lots of chances and it was a totally deserved win.
"This is the toughest period of the season and it is good to have more options. Josh Murphy was back in the squad with a really solid performance and a beautiful goal.
"And Alex Pritchard is special. He can always create something. It was a brilliant goal and a brilliant assist."
- 6KieftenbeldBooked at 45mins
- 27JotaSubstituted forMaghomaat 45'minutes
- 17NdoyeSubstituted forDavisat 45'minutes
- 6ZimmermannBooked at 52mins
- 21PritchardSubstituted forWildschutat 85'minutes
- 23MaddisonSubstituted forReedat 80'minutes
- 11MurphyBooked at 79mins
- 9OliveiraSubstituted forWatkinsat 76'minutes
- David Coote
- Shots on Target
Second Half ends, Birmingham City 0, Norwich City 2.
Foul by Tom Trybull (Norwich City).
David Davis (Birmingham City) wins a free kick on the right wing.
Tom Trybull (Norwich City) wins a free kick in the defensive half.
Foul by Jacques Maghoma (Birmingham City).
Harrison Reed (Norwich City) wins a free kick in the defensive half.
Foul by David Davis (Birmingham City).
Attempt missed. Jacques Maghoma (Birmingham City) right footed shot from outside the box is high and wide to the right. Assisted by Harlee Dean.
Foul by Ivo Pinto (Norwich City).
Jacques Maghoma (Birmingham City) wins a free kick on the left wing.
Substitution, Norwich City. Yanic Wildschut replaces Alex Pritchard.
Attempt missed. Christoph Zimmermann (Norwich City) right footed shot from the centre of the box is too high following a corner.
Corner, Norwich City. Conceded by David Stockdale.
Attempt saved. Josh Murphy (Norwich City) left footed shot from the left side of the box is saved in the bottom right corner. Assisted by Harrison Reed.
Attempt saved. Alexander Tettey (Norwich City) right footed shot from outside the box is saved in the centre of the goal. Assisted by Alex Pritchard.
Substitution, Norwich City. Harrison Reed replaces James Maddison.
Josh Murphy (Norwich City) is shown the yellow card for a bad foul.
Foul by Josh Murphy (Norwich City).
Maikel Kieftenbeld (Birmingham City) wins a free kick in the defensive half.