Cristiano Ronaldo struck five minutes after half-time to give Manchester United victory at Birmingham and move them second in the Premier League.
Ryan Giggs celebrates Man Utd's winner with scorer Cristiano Ronaldo
United lost keeper Edwin van der Sar through injury at half-time and had to survive a spirited Birmingham display.
Van der Sar saved well from Cameron Jerome and Rio Ferdinand cleared off the line from Gary McSheffrey.
Ronaldo grabbed the winner when he took advantage of Franck Queudrue's error to round Maik Taylor and score.
It was Ronaldo's 100th Premier League start, and the display summed up United's season so far - failing to scale the heights but grinding out the victory.
United restored all their big names after a shadow side lost to Coventry in the Carling Cup at Old Trafford - but it was Birmingham who posed the bigger threat in the first 45 minutes.
Jerome forced a fine diving save out of Van der Sar when he was presented with possession by Paul Scholes - then did well to stop Queudrue's header from the resulting corner.
Taylor then held on to a Wayne Rooney lob, but it was United who survived another scare after 17 minutes.
Sebastian Larsson's cross found McSheffrey at the far post, but his effort was smuggled off the line by Ferdinand.
Jerome then failed to take advantage of a poor clearance by Van der Sar as United looked uncertain at the back.
Van der Sar needed lengthy treatment to his left foot midway through the half, and despite carrying on until the interval, he was replaced by Tomasz Kuszczak.
United needed a break, and Queudrue's horrendous loss of concentration handed it to them five minutes after the re-start.
He allowed a ball to bounce in the area, seemingly unaware of Ronaldo's menacing presence, allowing the Portuguese star to steal in, take possession and evade Taylor to score.
Birmingham responded in spirited fashion, with Kuszczak producing a fine diving save to turn away a shot from McSheffrey that had deflected dangerously off Ferdinand.
United were still short of attacking threat, and Sir Alex Ferguson took action after 63 minutes, sending on Louis Saha for the subdued Ryan Giggs.
They almost doubled their lead immediately, but Stephen Kelly cleared Wayne Rooney's effort to safety.
Rooney then set up Ronaldo with 11 minutes left, but he pulled his shot inches wide.
Birmingham manager Steve Bruce:
"I don't think we'll ever have a better chance to beat United and in the first half we had to take one of our chances.
"An individual mistake, a bad mistake cost us the game.
"A draw would have been a great result for us but it was the manner in which we played which was pleasing. Against one of the big, big teams it was as good a performance as we've put in."
Manchester United manager Sir Alex Ferguson:
"I thought in the first half Birmingham were the better team. It was the hardest game we have had so far this season.
"They made it very difficult for us but in the second half we had a better threat going forward and we defended much better.
"Ronaldo showed composure (for his goal), he's got the pace to go by people and he took it very well."
Birmingham: Maik Taylor, Kelly, Djourou (Schmitz 76), Ridgewell, Queudrue, Larsson, Nafti (O'Connor 84), Muamba (Palacios 70), McSheffrey, Kapo, Jerome.
Subs Not Used: Kingson, Danns.
Booked: Queudrue, Nafti, Larsson.
Man Utd: Van der Sar (Kuszczak 46), Brown, Ferdinand, Vidic, Evra, Ronaldo, Carrick, Scholes, Giggs (Saha 64), Rooney, Tevez (O'Shea 89).
Subs Not Used: Anderson, Pique.
Goals: Ronaldo 51.
Ref: Steve Bennett (Kent).