Craig Gardner was Birmingham's hero for the second time in a week as he dealt a blow to Manchester City's fading title hopes in a 2-2 draw at St. Andrew's.
Gardner had scored the goal which earned Alex McLeish's side victory over West Ham in the Carling Cup semi-final and followed that up with a late equaliser from the penalty spot as his side salvaged a precious point.
The visitors twice led through Carlos Tevez and Aleksandar Kolarov but were pegged back by Nikola Zigic and then Gardner's sixth goal of the campaign.
It means they are now eight points adrift of Barclays Premier League leaders Manchester United and have played a game more.
After four minutes Tevez converted his 17th goal of the campaign when his shot from a narrow angle took a slight deflection off Martin Jiranek before bobbling into the far corner of the net.
Birmingham drew level thrugh Zigic in the 25th minute and Kolarov restored the lead for the visitors, butBirmingham levelled for the second time after 77 minutes when Vieira fouled fellow substitute Kevin Phillips inside the area and up stepped Gardner to hammer the spot-kick past Hart.