The Blues hit the lead in the 15th minute through Cameron Jerome who stabbed home from close range but the Baggies levelled in the 51st minute when Scott Dann deflected past Ben Foster into his own goal.
West Brom took the lead eight minutes later when Peter Odemwingie rounded Foster before slipping into the net and then Jonas Olsson headed home a Chris Brunt corner with 20 minutes remaining.
The Baggies climbed to ninth after the win whilst Birmingham dropped to 11th with their first loss of the campaign.
Venue: The Hawthorns, West Bromwich Crowd: 23,062 Referee: Chris Foy Yellow cards:WBA - Peter Odemwingie 59' BC - Lee Bowyer 67'
WBA Scott Carson (gk), Jonas Olsson, Gabriel Tamas, Nicky Shorey, Gonzalo Jara, Paul Scharner, Youssuf Mulumbu (Reid 76'), Jerome Thomas (Barnes 87'), Chris Brunt, Marc-Antoine Fortune (Dorrans 45'), Peter Odemwingie
Subs - Boaz Myhill (gk), Steven Reid (76'), Pablo Ibanez, Graham Dorrans (45'), Roman Bednar, Giles Barnes (87'), Somen Tchoyi
BC Ben Foster (gk), Scott Dann, Roger Johnson, Liam Ridgewell, Stephen Carr, Barry Ferguson, Craig Gardner, Lee Bowyer (Zigic 68'), Sebastian Larsson, Cameron Jerome (Derbyshire 80'), Alexander Hleb (Beausejour 83')