Birmingham moved back into second place in the Championship but could only claim a point at rock-bottom Charlton.
Jonjo Shelvey had Charlton's best early chances, and went closest when his free-kick flew narrowly over the bar.
The Addicks threatened again when Lloyd Sam's drive was pushed on to the post by Birmingham goalkeeper Maik Taylor.
City's best efforts saw Keith Fahey denied twice by Rob Elliot but Zheng Zhi should have won it for Charlton when he scuffed his close-range shot.
Charlton boss Phil Parkinson:
"If we had that team out there earlier in the season we'd be nowhere near the bottom.
"This team is a good team. We've got good players and we've gone toe-to-toe with a team looking for promotion and at times made them look ordinary."
Birmingham boss Alex McLeish:
"It's in our hands. I'm challenging the players to win all our games. We've got to believe we can and have a strong mentality.
"Sheffield United have hard games, the same as us. Nobody has an easy game.
"But it comes down to temperament and how much the players want it because there is nothing between the teams."
Charlton:
Elliot, Butterfield, Ward, Hudson, Youga, Sam (Ambrose 90), Racon (Dickson 79), Zhi, Bailey, Shelvey, Kandol.
Subs Not Used: Randolph, Holland, Burton.
Booked: Bailey.
Birmingham: Maik Taylor, Carr, Jaidi, Ridgewell, Murphy, Larsson (Phillips 49), Bowyer, Johnson, Fahey, Bouazza (McFadden 65), Jerome (Bent 59).
Subs Not Used: Doyle, Queudrue.
Booked: Murphy, Jaidi.
Att: 20,022
Ref: Lee Probert (Wiltshire).
www.bbc.co.uk