James McFadden's penalty earned a point for Birmingham and lifted them out of the relegation zone.
Birmingham's James McFadden is bundled over by Lucas Neill
The Hammers started superbly and went ahead when Freddie Ljungberg smashed the ball in from close range following Carlton Cole's flick-on.
But the home side spurned several good chances to extend that lead and McFadden's penalty levelled the scores after he was felled by Lucas Neill.
West Ham's Lee Bowyer was sent off for a lunge on Damien Johnson late on.
Bowyer's red card was one of the few incidents of note in a lifeless second period.
Mikael Forssell had the best chance of the half but was unlucky to see his cross-shot drift inches wide after a neat turn.
But an away win would have been harsh on a West Ham side looking to follow up victories over Manchester United, Fulham and Liverpool by winning a fourth successive home match.
Birmingham headed into the game without a win in 2008 - a run of seven league and cup matches.
And the early exchanges suggested both those trends would continue.
The Londoners looked bright and inventive while the Blues appeared sluggish and defensively disorganised, and it was no surprise when the home side took the lead.
Cole showed great strength at the front post to flick on George McCartney's long throw and Ljungberg reacted quickly to fire the ball into the roof of the net.
It was no more than West Ham deserved, and they had chances to extend their lead.
Bowyer, back in the side for the rested Mark Noble, stroked a shot narrowly wide after some superb one-touch passing and Cole then dragged a tricky right-foot volley across goal.
But the Blues were level on 15 minutes and it was from another throw-in.
Neill got too tight on McFadden and bundled the striker over in the box after being flummoxed by a nifty dummy.
Freddie Ljungberg celebrates his goal with George McCartney
McFadden, the pick of Birmingham's attacking players, sidefooted the penalty into the left corner to draw the visitors level.
West Ham responded and Bowyer had a weak shot saved by Maik Taylor after good work by Matthew Etherington.
The lively Etherington forced a fine save from Maik Taylor following another fine move and Cole had a dangerous volley blocked after a mis-hit Ljungberg cross.
Birmingham should have gone in front but Forssell could only send his free header straight into the arms of Robert Green after a delightful cross from McFadden - the final chance of an entertaining opening half.
However, the second half produced very little in the way of decent chances or entertainment.
Gary McSheffrey cut in from the left and struck a right-foot effort that hit Anton Ferdinand and went just wide, while Forssell also went close.
At the other end, Hammers defender Matthew Upson saw a header comfortably saved by Maik Taylor but neither side did enough to force the victory.
West Ham manager Alan Curbishley on Lee Bowyer's red card:
"We have asked Mark Clattenburg (referee) to look at it, and we think he will. Hopefully he will overturn it. When it happened I did not think it was that serious.
"I think Damien Johnson has come in and both of his feet have connected with the ball, so I don't know if Bowyer has gone above it. We will have to wait and see.
"We started off okay and got our goal, then the penalty was really soft - I cannot even see an arm around McFadden. It knocked us a little bit.
"We created some little openings which we needed to take, then the second half fizzled out on us and neither team looked like they were going to score."
Birmingham boss Alex McLeish on goalscorer James McFadden:
"It is great for James. He looked lively and troubled the West Ham defenders in the first half.
"James is not an out-and-out goalscorer, hopefully he will provide many as well with his creativity - but he will score the occasional goal and is very dangerous."
"We had a lot of the ball in the final third, particularly in the first half, but we did not quite make as much of the opportunities as I would like.
"In the second half we had to do a bit more defending, and it was a really spirited performance from the players. We were written off last week, but we have bounced back again. We are out of the bottom three this week, but it means nothing until May."
West Ham: Green, Neill, Ferdinand, Upson, McCartney, Ljungberg, Bowyer, Mullins, Etherington (Camara 83), Ashton (Spector 90), Cole (Faubert 62).
Subs Not Used: Wright, Collison.
Sent Off: Bowyer (88).
Goals: Ljungberg 7.
Birmingham: Maik Taylor, Kelly, Martin Taylor, Ridgewell, Murphy, Larsson, Muamba, Johnson, McSheffrey (Parnaby 87), Forssell (Jerome 76), McFadden.
Subs Not Used: Doyle, Nafti, Zarate.
Booked: Johnson, McSheffrey, Muamba, Maik Taylor, Jerome.
Goals: McFadden 16 pen.
Ref: Mark Clattenburg (Tyne & Wear).
BBC Sport Player Rater man of the match: Birmingham's James McFadden 7.71 (on 90 minutes). Please note that you can still give the players marks out of 10 on BBC Sport's Player Rater after the match has finished.