O'Connor got the winner for Birmingham in injury time
Garry O'Connor's 94th-minute winner sank Crystal Palace and put Birmingham on top of the Championship table.
O'Connor, who twice hit the post in the first half, bundled home after Palace keeper Julian Speroni failed to hold Kevin Phillips' strike.
Palace had chances of their own, with Stuart Parnaby blocking Shefqi Kuqi and Craig Beattie shooting just wide.
But O'Connor struck to give Birmingham another late winner and extend their unbeaten run to five games.
Birmingham boss Alex McLeish: "I was really pleased for Garry O'Connor.
"He has now played in three successive games and he is obviously playing better from playing regularly in the side.
"He produced a fine all-round performance and, with a bit of luck, could have had a hat-trick."
Crystal Palace manager Neil Warnock
"We have now played Wolves, Birmingham City and Reading away from home already this season and we should have won all three games.
"I am pleased with the way we have bounced back since the early games and it took a freak goal in the fourth minute of injury time which cost us the game.
"If Kevin Phillips hadn't shanked his shot we would not have conceded the O'Connor goal.
"But the lad deserved his goal for his first-half performance when he twice went close to scoring."
Bookmark with:
What are these?