Duncan Ferguson's late equaliser kept Everton in pole position to qualify for the Champions League.
Emile Heskey powered home a 20-yard drive after five minutes that looked to have put Birmingham on course for a rare away victory at Goodison Park.
But Ferguson, who scored the winner in midweek against Manchester United, scrambled home after 86 minutes to snatch a crucial point for Everton.
James Beattie had missed Everton's best chance with a poor first-half header.
Everton could not re-produce the display that sunk Manchester United but they will have been happy with a point in the end.
Boss David Moyes made three changes to the side that stunned Manchester United, with Ferguson replaced by Beattie, while Alessandro Pistone and Leon Osman came back for Steve Watson and Marcus Bent.
Goodison Park was still in celebratory mood after beating United, but they were stunned after only five minutes when Heskey took a pass from Jermaine Pennant and drilled a powerful 20-yard shot past Nigel Martyn.
Beattie had a nightmare first-half, and his display was summed up by an awful miss after 14 minutes, somehow heading wide from eight yards when unmarked and with the goal at his mercy.
Birmingham were relatively comfortable, with their only moments of unease coming from a Tim Cahill header that drifted off target and an effort from Joseph Yobo that was clutched by Maik Taylor.
Everton needed to inject impetus, and boss Moyes acted at half-time, sending on Ferguson and Watson for Lee Carsley and the struggling Pistone.
But it was Birmingham who should have doubled their lead after 57 minutes, when the outstanding Pennant provided another opportunity for Tunisian Mehdi Nafti, but his header was poor.
Pennant then provided another inviting cross that Yobo just managed to clear ahead of the lurking Heskey.
And as time ran out, Ferguson popped up to score from close-range as Birmingham failed to clear in a goalmouth scramble.
Everton manager David Moyes:
"We obviously would have liked three points rather than one, but we are happy with our points return of seven points from our last three home games.
"We know we are close to making European football and it would be nice if that happens and we also know we will still be fourth after all the games are played.
"Emotionally the win against Manchester United took a lot out of us, but we kept going and Duncan got the equaliser for us.
"We told the players to re-focus on the Birmingham game right after the win in midweek, but they're only human and it's very difficult.
"We kept going and got a point, and could even have won it when Tony Hibbert had a chance right at the end."
Birmingham manager Steve Bruce:
"It feels like a defeat to come so close and then concede an equaliser right at the end.
"I felt we deserved to win. We were the better side and feel harshly treated not to have won. You could say Everton were coming off the back of a very difficult game, but considering the circumstances I have to be pleased with our performance.
"I thought Emile Heskey caused Everton problems all afternoon and Jermaine Pennant was outstanding. He's a real talent."
Everton: Martyn, Hibbert, Weir, Yobo, Pistone (Watson 45),
Carsley (Ferguson 45), Osman, Arteta, Cahill, Kilbane,
Beattie (Bent 61).
Subs Not Used: Wright, McFadden.
Booked: Carsley, Watson.
Goals: Ferguson 86.
Birmingham: Maik Taylor, Melchiot, Cunningham, Upson,
Lazaridis, Pennant (Martin Taylor 89), Johnson, Nafti,
Anderton (Clemence 79), Pandiani (Blake 68), Heskey.
Subs Not Used: Bennett, Morrison.
Booked: Melchiot, Cunningham, Clemence.
Goals: Heskey 5.
Ref: A D'Urso (Essex).