Emile Heskey's early header was enough to earn Birmingham their first Premiership victory of the season.
Heskey's early goal was enough to win the points for the Blues
Heskey rose above the Manchester City defence after just eight minutes to guide the ball into the top right-hand corner of David James' goal.
It was a scrappy encounter, although Birmingham looked the more likely to score throughout.
For City, Robbie Fowler missed a straightforward header, while James saved well from Stern John late on.
Birmingham welcomed back last season's leading scorer Mikael Forssell from injury.
But it was City who fashioned the first meaningful chance.
Nicolas Anelka was guilty of an awful miss after four minutes, failing to connect after a typically incisive run and cross from Shaun Wright-Phillips opened Birmingham up down the right.
Some people said I was taking a big risk bringing Heskey in, but he is a physical threat
But Birmingham were celebrating soon after after Heskey met Stan Lazaridis' cross and directed a powerful header past James.
The match failed to settle, however, with both sides guilty of some awful passing in midfield.
Heskey headed well wide on 20 minutes, but chances were at a premium for both teams.
It was, perhaps, significant that the most significant action came when Danny Mills picked up a yellow card for a cynical foul on Forssell.
The action picked up before half-time, with Robbie Fowler guilty of mis-timing his header when well placed.
Birmingham started brightly after the break, with Forssell heading just over after a wickedly curling free-kick from Muzzy Izzet.
But they had to reshuffle when Heskey was forced off with a twisted ankle, being replaced by Stern John.
Izzet was proving to be a real threat down the right, with City struggling to cope with his crosses.
Yet it was a cross from the left which caused most trouble, Lazaridis hitting the ball in and leaving David James in no man's land, before City cleared.
The visitors' chances were few and far between in the second half, and City were thankful for a brilliant reaction save from James on 66 minutes after John attempted to side-foot the ball home.
As the match moved into its closing stages, City began to look more threatening.
Claudio Reyna drilled a shot which was deflected wide for the visitors with five minutes to go but Maik Taylor was rarely called into action.
Birmingham: Maik Taylor, Melchiot, Upson, Cunningham,
Lazaridis (Clemence 59), Gronkjaer, Johnson, Izzet, Gray,
Forssell (Tebily 79), Heskey (John 54).
Subs Not Used: Bennett, Martin Taylor.
Man City: James, Jihai, Mills, Distin, Thatcher,
Wright-Phillips, Bosvelt (Barton 79), Reyna,
Sibierski (Sinclair 57), Fowler (Macken 79), Anelka.
Subs Not Used: Stuhr-Ellegaard, Bischoff.
Referee: P Dowd (Staffordshire).