Birmingham opened the scoring in the 17th minute through Jean Beausejour’s header, which Tim Howard got a hand to but could not keep out.
John Heitinga levelled 10 minutes before the interval, making the most of a failed clearance from a corner by firing in a fierce side-footed effort that left Ben Foster with no chance.
The home side looked by far the more likely to break the deadlock in the second period but could not find a winner as Alex McLeish’s team secured a point which takes them up to 17th in the table, with West Ham dropping back into the bottom three.
Everton made the first foray forward in the third minute and Mikel Arteta – named skipper for the night in the absence of hamstring victim Phil Neville – might have shot when he reached the edge of the box but passed the ball to Louis Saha, who lost control.
Birmingham then went close as Cameron Jerome got a header to Sebastian Larsson’s free-kick, Howard doing well to push the effort away.
Arteta’s involvement came to an abrupt end soon after when he appeared to sustain a hamstring problem of his own while in a chase with Larsson.
Toffees boss David Moyes brought on Seamus Coleman for the Spanish midfielder and Phil Jagielka took over the captaincy, while the visitors were also forced into an early substitution as David Bentley came off for David Murphy.
Everton enjoyed a spell of pressure, with Leon Osman heading a Tony Hibbert cross into the turf for Foster to catch and Jermaine Beckford stinging the Blues goalkeeper’s palms.
Osman was next to bring a save out of Foster with a rising drive, but a minute later Birmingham had the lead.
Young midfielder Jordon Mutch swung in a cross and Beausejour beat Hibbert to it with a header that Howard clipped with his glove but could not prevent from crossing the line.
Everton looked to hit back, but Beckford could only send the ball over the bar with his back to goal having met a Jack Rodwell delivery.
The former Leeds striker then failed to connect with Coleman’s through-ball, which instead bounced off Stephen Carr towards goal but Foster was on hand to avert the danger.
The hosts continued to press and found their reward in the 35th minute as Heitinga rifled in the equaliser.
Jerome made a hash of clearing Osman’s corner and the ball fell to Heitinga, who swept it into the roof of the net from outside the area.
There was no sign of any let-up from Everton as Rodwell drilled a low effort into the arms of Foster, who then caught a diving header from Coleman.
At the other end, Jerome twisted and turned but his shot across goal went wide and Lee Bowyer struck an attempt at Howard just before half-time.
Everton were quick to settle after the restart and might have had a penalty claim when Foster seemed to clatter Coleman as he came out to punch away a cross, although play continued.
Moments later Saha’s pleas that he was being held by Liam Ridgewell as he nodded a corner over the bar were to no avail.
Coleman then cut into the area to unleash an effort that was well off target, but once again the home side were in the ascendancy.
A slip by Roger Johnson let in Saha, but the Frenchman chose to turn rather than shoot early and the effort he did get away cannoned off Mutch.
Play switched and Mutch was allowed the space to shoot wide from distance, but it was Beckford who then found himself in another good position, only to hit his shot into Foster’s body.
McLeish sent on Nikola Zigic for Jerome to provide fresh attacking impetus and the Serbian teed up Murphy, who horribly sliced his attempt at goal.
Moyes then also made a change up front, replacing Beckford with Victor Anichebe, before Osman tried a spectacular curling effort which was helped over the bar by Foster.
Anichebe managed to shoot on the turn as he we was falling towards the end, but it did little to trouble Foster and the game finished all square.