Nikola Zigic scored for City in the 33rd minute with a smart header before the Gunners were handed a penalty which was converted by Samir Nasri before Marouane Chamakh netted the winner just minutes after half-time to consign Birmingham to a sixth game without a win.
Venue: Emirates Stadium, North London Crowd: 60,070 Referee: Martin Atkinson Yellow cards:ARS - Samir Nasri 42', Emmanuel Eboue 77' BC - Lee Bowyer 53', Stephen Carr 72' Red card:ARS - Jack Wilshere 90+3'
As always, Arsenal looked dangerous early in the piece but Birmingham's tackling was razor sharp as they continually closed down the likes of Abou Diaby, Andrey Arshavin and Marouane Chamakh and they almost broke the shackles in the 17th minute when French defender Sebastien Squillaci headed home from a Samir Nasri set-piece but he was adjudged to have been off-side.
Birmingham managed to take the lead just after the half-hour mark when Keith Fahey delivered a perfect ball for massive striker Nikola Zigic who beat Lukasz Fabianski with a brilliantly weighted header which momentarily silenced the Emirates crowd.
But parity was soon restored when Birmingham's Scott Dann appeared to clip Chamakh in the area eight minutes after the opener, forcing referee Martin Atkinson to point to the spot. Samir Nasri stepped up and sent Foster the wrong way for his fifth goal of the season although most City supporters would have been very unhappy with the decision.
Straight after the break, the Gunners took the lead through Chamakh who scored a magical goal after Jack Wilshere played the him through in the area and he managed to dance around two defenders and the keeper before slotting home. It was the Moroccan's fifth of the term and his first in three league matches.
Gunners youngster Wilshere's superb game in midfield was marred when he was sent off for a reckless challenge on Zigic in injury time but it was not enough for Birmingham to grab an equaliser as Arsenal moved to second on the table with fourth-placed Manchester City still to play.
ARS Lukasz Fabianski (gk), Emmanuel Ebour, Sebastien Squillaci, Johan Djourou, Gael Clichy, Alex Song, Abou Diaby, Samir Nasri, Jack Wilshere, Andrey Arshavin (Rosicky 70'), Marouane Chamakh (Bendtner 79')
Subs - Wojciech Szczesny (gk), Tomas Rosicky (70'), Carlos Vela, Theo Walcott, Denilson, Kieran Gibbs, Nicklas Bendtner (79')
Subs - Maik Taylor (gk), David Murphy (77'), Kevin Phillips, Garry O'Connor (80'), Matt Derbyhshire, Michel, Martin Jiranek