Middlesbrough returned to the top of the Championship table after coming from a goal down to claim a point in a classic at St Andrew’s.
Boro move ahead of Burnley and Brighton, who can climb above them again with wins in Monday’s games.
Stephen Gleeson and Jordan Rhodes shared a goal apiece in the first half, before Gaston Ramirez put Boro ahead.
David Davis levelled, but Daniel Ayala had a goal disallowed to deny the Teessiders all three points.
Both sides had numerous chances to score more goals on a cold and wet night full of breathless end-to-end action and fabulous entertainment in Small Heath.
But Ayala wrongly had what would have been a winning goal chalked off for offside before visiting skipper Grant Leadbitter wobbled the Railway Stand End crossbar with a blistering volley which proved too hot for Adam Legzdins to handle.
The game that came to life
A first half hour of tactical stalemate suddenly came to life with a string of chances at both ends, before two goals in quick succession.
Both Blues keeper Legzdins and his counterpart Dimi Konstantopoulos made key saves, but both were culpable at crucial moments.
Such was the ferocity of the Blues midfielder Gleeson’s well-struck shot that Konstantopoulos could only help it into the net.
At the other end, Ramirez’s free-kick should not have troubled the keeper but Legzdins fumbled the ball as if it was a bar of soap – and the predatory Rhodes raced in to prod it over the line.
Rhodes had a great chance of a second when he latched onto deflected Leadbitter’s free kick but the ball came back off the post and, in his desperation to latch onto the rebound, he got in the way of the better placed Albert Adomah.
It mattered little when, in Blues’ next attack, Rhodes cutely headed down Adomah’s cross for Ramirez to net from almost on the line, but Davis latched onto a loose clearance to equalise again.
Ayala was then denied by the referee’s assistant’s flag, while there were further chances for ex-Boro loanee Diego Fabbrini who headed over, David Cotterill, who saw his powerful shot saved then somehow scrambled out for a corner and Leadbitter – who saw his thunderous effort swerve out of Legzdins’ grasp to hit the bar.
Rhodes may be a prolific scorer but he reacts in a phlegmatic way to disappointment.
Twice, when he perhaps ought to have scored, he was denied by saves from Legzdins, but was still on the spot to accept when the Blues keeper offered him a gift.
Similarly, after a bad miss early in the second half, it was Rhodes who then bounced straight back to head down for Ramirez to put Boro ahead.
After scoring for Boro in only his second appearance after signing from Blackburn for £9m in the January transfer window, Rhodes then went through an uncustomary eight-game barren spell.
But his first-half equaliser at St Andrew’s was his fifth goal in seven matches, his 17th of the season and, at 26, the Oldham-born Scotland international is now just 12 short of 200 career goals.
Birmingham City boss Gary Rowett told BBC Sport: “A great game, a great advert for the Championship and we may have played our small part in who gets promoted this season.
“The Ayala goal was onside, but then I thought there was a slight suspicion about their first goal. Adam Legzdins will learn from his error and he had just made two good saves before that.
“And nothing can take away from the quality of our performance on a night which could easily have been a nervy occasion. The idea that my lads might be on the beach with their flip flops on was an insult to my players.”
Middlesbrough boss Aitor Karanka: “We are in a good position. We have a chance to play at home with our crowd behind us next week.
“We have to be pleased with a point. Birmingham are a good team.”
Karanka on Ayala’s disallowed goal: “I like to think it was a mistake but there have been a lot of mistakes against us this season and it is not the day to discuss that.”