James McFadden salvaged a point for Birmingham with an injury-time penalty but the game was overshadowed by a horrific injury to Arsenal's Eduardo.
The injury to Eduardo stunned everybody on the pitch
The striker suffered a broken leg in the third minute after a tackle by Martin Taylor, who was sent off.
McFadden gave the Blues the lead with a 20-yard free-kick before Theo Walcott poked in his first Premier League goal.
Walcott made it 2-1 with a mazy run and shot before McFadden equalised after Gael Clichy fouled Stuart Parnaby.
It was a dramatic end to an incident-packed match that began with a sickening injury to Croatia international Eduardo which shocked players and officials in the immediate vicinity.
Referee Mike Dean summoned Arsenal physio Gary Lewin and the St John's Ambulance volunteers to attend to the striker and issued a straight red to Taylor.
The on-pitch treatment for the 24-year-old lasted seven minutes before he was given oxygen, stretchered off and rushed to hospital in Birmingham.
Both sides did their best to get their minds refocused after the restart but it took until the 28th minute before there was a major goalmouth incident, resulting in the opening goal for Birmingham.
The marauding McFadden, who was playing on his own in attack after Mikael Forssell was sacrificed for defender Stuart Parnaby following the red card, was brought down by Mathieu Flamini.
The Scotland forward dusted himself off before delicately placing his 20-yard free-kick into Manuel Almunia's top-left corner, despite the Spaniard getting a hand to the ball.
McFadden was on form at St Andrew's
McFadden should have doubled the home side's lead in the fifth of nine minutes of stoppage time but allowed Phillippe Senderos to tackle him after finding himself one-on-one with Almunia.
The Premier League leaders appeared shell-shocked during the first 45 minutes following the injury to their team-mate and needed a spark after the break to haul them back into the match.
That spark was provided by wunderkind Walcott, making his 30th league appearance for Arsenal.
The sprightly 18-year-old, in for the suspended Emmanuel Eboue, was first to pounce on a loose ball, from a challenge between keeper Taylor and Emmanuel Adebayor, and stabbed in from eight yards.
And five minutes later he put Arsenal in the lead after seizing on a mistake from Liam Ridgewell, drifting past two City defenders and rifling his low effort past the reach of Taylor.
Arsenal could have added to their lead, but first Adebayor was foiled by the hand of Taylor and then Bendtner smacked a low angled shot just wide of the Birmingham right-hand upright.
The Gunners seemed guaranteed to take all three points back to north London, before their hopes were shattered by an inexplicable mistake from full-back Clichy.
The French defender delivered a pass into no-man's land inside the Arsenal area and allowed Parnaby to seize on the ball before bringing the former Middlesbrough player down.
Referee Dean pointed to the spot and McFadden stepped up to smash the ball to Almunia's left.
The final whistle sounded seconds after the restart - Arsenal were left stunned, in particular defender William Gallas who sat down on the pitch for about two minutes before manager Wenger called him to his feet.
• Birmingham boss Alex McLeish:
"Taking the lead was unexpected but what a great goal it was and we looked comfortable up to half-time.
"We got a bit casual. I thought it's going to be a long second half.
"We were prepared to lose it by a heavier margin but boldness, I think, got us a point."
• Arsenal boss Arsene Wenger:
"It was a dodgy penalty for their equaliser and they should not have been given a free-kick that led to the first goal.
"A minute before they got their penalty I was 100% certain that Emmanuel Adebayor should have won a spot-kick.
And on William Gallas' full-time protest: "He was frustrated."
Birmingham: Maik Taylor, Kelly, Martin Taylor, Ridgewell, Murphy, Larsson (Nafti 66), Johnson, Muamba, Kapo (Zarate 59), McFadden, Forssell (Parnaby 15).
Subs Not Used: Doyle, Jerome.
Sent Off: Martin Taylor (3).
Goals: McFadden 28, 90 pen.
Arsenal: Almunia, Sagna, Gallas, Senderos, Clichy, Walcott (Denilson 89), Fabregas, Flamini, Hleb (Silva 89), Eduardo (Bendtner 8), Adebayor.
Subs Not Used: Lehmann, Justin Hoyte.
Booked: Sagna, Gallas.
Goals: Walcott 50, 55.
Ref: Mike Dean (Wirral).
BBC Sport Player Rater man of the match: Birmingham's James McFadden 7.50 (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.