Mark Hudson rescued a deserved point for Cardiff City with a wonderful volley as Birmingham returned to the top six on goal difference.
Marlon King missed a second-half penalty but Erik Huseklepp put the home side in front against the run of play after a slick counter attack.
Captain Hudson converted Peter Whittingham's deft ball to equalise and Rudy Gestede almost grabbed a winner.
Chris Burke also forced a fine save from Cardiff keeper David Marshall.
The point leaves both sides locked together on 60 points, with Birmingham's vastly superior goal difference giving them the last play-off place with seven games remaining.
But Cardiff will feel they wasted a crucial opportunity to take maximum points from one of their promotion rivals, who looked totally devoid of ideas on a lively surface.
Birmingham struggled to pick up Cardiff's mobile midfielders throughout as Whittingham and Aron Gunnarsson found space at will in pockets in front of the home defence.
Did you know?
- Birmingham have not lost at St Andrews to Cardiff City since a 2-1 reverse in the old Second Division in December 1966
For all their dominance, though, the visitors failed to test Boaz Myhill in the home goal until substitute Gestede's drive eight minutes from time.
Joe Mason came closest to capitalising on their superiority in the first half when he flashed a drive across the face of Boaz Myhill's goal.
The lone striker, a summer recruit from Plymouth Argyle, was also within inches of reaching Whittingham's enticing cross.
Birmingham did force the only save of the first half when Guirane N'Daw's tame shot was comfortably saved by Marshall.
And after struggling so badly before the break, Birmingham were given the perfect opportunity to score when Jordan Mutch lured Don Cowie to dangle out a leg in his own area.
King, scorer of three penalties this season, stepped up but his weak effort was palmed away by Marshall as he dived to his right.
Cardiff's dominance continued, but they were caught out by a sucker punch on 68 minutes later for Birmingham's opener.
Chris Burke beat Kevin McNaughton, Cardiff's only defensive cover as they surged forward for a corner, and delivered a perfect ball for Huseklepp to stroke past Marshall at the far post.
Whittingham had looked Cardiff's most likely creator, and the midfielder showed his class once again this season to set up the equaliser 12 minutes from time.
Hudson still had plenty to do as he waited for Whittingham's chip over the home defence, but the captain controlled his side-foot volley to perfection from just inside the area.
Burke then tested Marshall's reactions with a sharp shot on the turn, before Cardiff's late surge saw Myhill saving Gestede's goal-bound effort.
Birmingham manager Chris Hughton said: "We were not at our best in the first half. We got an improvement in the second half up against a team which floods the midfield.
"In 95 minutes their goal was the only chance they had."
Cardiff manager Malky Mackay said: "I am disappointed because we played fantastically and showed real courage in dominating possession.
"If we had panicked after they had scored and lumped the ball forward it would have played into their hands.
"I thought we probed well, pushed on well after our equaliser and we had Birmingham on the back foot."
- 01 Myhill
- 04 Caldwell
- 05 Pablo (Gomis - 72' )
- 06 Ramage
- 24 Davies
- 07 Burke
- 08 N'daw
- 10 Huseklepp (Townsend - 69' )
- 12 Mutch
- 15 Elliott
- 09 King
- 13 Doyle
- 11 Townsend
- 14 Gomis
- 22 Redmond
- 19 Zigic
- 01 Marshall
- 02 McNaughton
- 03 Taylor
- 05 Hudson
- 25 Turner
- 07 Whittingham
- 08 Cowie (Gestede - 72' )
- 13 Lawrence
- 17 Gunnarsson
- 37 McPhail (Miller - 84' )
- 20 Mason
- 22 Heaton
- 23 Blake
- 09 Miller
- 10 Earnshaw
- 15 Gestede
Live Text Commentary
Full Time The referee blows for the end of the match.90:00 +4:30
The assistant referee signals for offside against Marlon King. David Marshall restarts play with the free kick.90:00 +3:21
Centre by Andrew Taylor.90:00 +2:48
Corner taken left-footed by Peter Whittingham from the right by-line to the near post, Marlon King makes a clearance.90:00 +2:42
The ball is delivered by Andrew Taylor.90:00 +2:08
Foul by Marlon King on Mark Hudson, free kick awarded. David Marshall takes the free kick.90:00 +1:45
Shot by Rudy Gestede from outside the box goes over the net.90:00 +1:09
Free kick awarded for an unfair challenge on Peter Whittingham by Morgaro Gomis. Free kick taken by David Marshall.87:40
Corner taken left-footed by Peter Whittingham, clearance made by Curtis Davies.84:07
Chris Burke takes a shot. Save by David Marshall.83:59
The ball is crossed by Wade Elliott, clearance by Ben Turner.83:10 Substitution
Substitution Kenny Miller comes on in place of Stephen McPhail.82:29
Rudy Gestede takes a shot. Save made by Boaz Myhill.82:21
Peter Whittingham delivers the ball, Guirane N'Daw makes a clearance.79:46
Chris Burke takes a shot. Save by David Marshall.78:15
Andros Townsend produces a cross, save made by David Marshall.77:04
The assist for the goal came from Peter Whittingham.77:04 Goal scored
Goal! - Mark Hudson - Birmingham 1 - 1 Cardiff Mark Hudson gets on the score sheet with a goal from inside the box to the bottom left corner of the goal. Birmingham 1-1 Cardiff.75:33
Liam Lawrence produces a right-footed shot from just outside the area that goes harmlessly over the target.71:18 Substitution
Substitution Don Cowie leaves the field to be replaced by Rudy Gestede.
Substitution (Birmingham) makes a substitution, with Morgaro Gomis coming on for Pablo Ibanez.68:32 Substitution
Substitution Andros Townsend on for Erik Huseklepp.67:18
Assist on the goal came from Chris Burke.67:18 Goal scored
Goal! - Erik Huseklepp - Birmingham 1 - 0 Cardiff Erik Huseklepp grabs a goal from inside the box to the bottom left corner of the goal. Birmingham 1-0 Cardiff.66:27
Inswinging corner taken left-footed by Peter Whittingham, clearance made by Pablo Ibanez.66:20
Kevin McNaughton produces a cross, Curtis Davies manages to make a clearance.65:50
The ball is crossed by Don Cowie, Steven Caldwell manages to make a clearance.64:43
Unfair challenge on Liam Lawrence by Guirane N'Daw results in a free kick. Liam Lawrence restarts play with the free kick.62:02
Centre by Liam Lawrence.61:26
Inswinging corner taken right-footed by Liam Lawrence played to the near post, Jordon Mutch makes a clearance.59:22
Wade Elliott gives away a free kick for an unfair challenge on Stephen McPhail. Direct free kick taken by Stephen McPhail.58:22
A cross is delivered by Ben Turner.57:39
The ball is swung over by Wade Elliott, Ben Turner makes a clearance.57:05
Marlon King crosses the ball, clearance made by Liam Lawrence.56:24
Corner taken by Peter Whittingham from the right by-line to the near post, Jordon Mutch makes a clearance.55:59 Penalty
Penalty taken by Marlon King saved by David Marshall. Birmingham 0-0 Cardiff.54:51
Jordon Mutch fouled by Don Cowie, the ref awards a Penalty.53:35
Peter Whittingham takes a inswinging corner to the near post, Jordon Mutch manages to make a clearance.53:30
Don Cowie delivers the ball, clearance by Peter Ramage.52:21
Free kick awarded for an unfair challenge on Erik Huseklepp by Kevin McNaughton. Jordon Mutch restarts play with the free kick.50:00
Shot by Jordon Mutch went wide of the right-hand upright.49:24
Free kick awarded for an unfair challenge on Marlon King by Mark Hudson. Wade Elliott takes the direct free kick.47:45
The assistant referee signals for offside against Joe Mason. Boaz Myhill takes the free kick.45:01
The referee gets the second half started.45:00 +0:56 Half time
Half Time The whistle is blown to end the first half.43:53
The ball is delivered by Kevin McNaughton, Wade Elliott makes a clearance.37:40
The assistant referee flags for offside against Jordon Mutch. Free kick taken by David Marshall.36:49
Foul by Wade Elliott on Liam Lawrence, free kick awarded. Stephen McPhail restarts play with the free kick.36:00
The referee blows for offside against Marlon King. Indirect free kick taken by David Marshall.35:16
The referee blows for offside against Aron Gunnarsson. Indirect free kick taken by Boaz Myhill.33:04
Effort from the edge of the penalty area by Joe Mason goes wide of the left-hand post.31:43
Foul by Wade Elliott on Liam Lawrence, free kick awarded. David Marshall restarts play with the free kick.31:08
Corner taken right-footed by Jordon Mutch from the right by-line, clearance by Liam Lawrence.29:02
The referee blows for offside against Joe Mason. Indirect free kick taken by Boaz Myhill.28:09
Peter Whittingham crosses the ball.27:30
Unfair challenge on Liam Lawrence by Jordon Mutch results in a free kick. Direct free kick taken by Liam Lawrence.26:49
Peter Whittingham produces a cross, save by Boaz Myhill.26:28
Short corner worked by Peter Whittingham.25:41
Jordon Mutch gives away a free kick for an unfair challenge on Kevin McNaughton. Free kick crossed by Peter Whittingham, clearance made by Jordon Mutch.21:35
Don Cowie is flagged offside by the assistant referee. Boaz Myhill takes the indirect free kick.18:13
The ball is sent over by Marlon King, Liam Lawrence makes a clearance.17:16
Guirane N'Daw takes a shot. Save by David Marshall.17:09
Wade Elliott sends in a cross, clearance made by Aron Gunnarsson.16:42
Short corner taken by Wade Elliott from the left by-line.14:10
Ben Turner has an effort from just inside the box that misses to the left of the target.12:17
Peter Whittingham takes a corner.10:17
Joe Mason has an effort at goal from outside the penalty box missing to the wide right of the goal.6:34
Free kick awarded for a foul by Jordon Mutch on Aron Gunnarsson. Andrew Taylor takes the free kick.5:05
The ball is swung over by Andrew Taylor, clearance made by Pablo Ibanez.2:44
Joe Mason is flagged offside by the assistant referee. Free kick taken by Boaz Myhill.0:19
Free kick awarded for an unfair challenge on Pablo Ibanez by Peter Whittingham. Boaz Myhill takes the direct free kick.0:00
The referee gets the match started.
Live data and text provided by our data suppliers