Diniyar Bilyaletdinov’s fifth-minute goal – a 12-yard drive after cutting in from the right side of the box – was all the hosts had to show for their early dominance.
And they were caught cold when Sebastian Larsson equalised (22) with Birmingham’s first shot of the match after good work by Christian Benitez.
Everton continued to control the game after the interval but never really threatened to add a second.
Not only did the result end Birmingham’s excellent run of results – they are now unbeaten in their last nine outings – it also extended Everton’s sequence to just one victory in 11 Premier League matches.
And David Moyes’ side have not won at home since they beat Blackburn 3-0 on September 20.