Match ends, Birmingham City 2, Preston North End 2.
Birmingham City ended their three-game losing run at home in the Championship, but let a 2-0 lead slip as Preston North End battled back to earn a point.
Clayton Donaldson put Blues in front when he tapped in after Anders Lindegaard saved Diego Fabbrini's shot.
Birmingham doubled their lead through Donaldson's close-range finish after David Cotterill's shot was saved.
Alan Browne fired home Tom Clarke's cross to give North End hope before Greg Cunningham fired in an equaliser.
Birmingham, who had lost all their three previous games at St Andrew's 2-1, remain in ninth place - but now cannot reach the play-offs.
Preston North End stay a place below Blues in 10th as they recorded their 16th draw in the Championship this season.
Birmingham City manager Gary Rowett told BBC WM:
"I have told the players that the last 15 minutes was one of the weakest I've seen in a game.
"It probably sums up our season since March. We need to be tougher, more professional and more disciplined.
"We can have a shake-up because, if that is the level of performance that people are happy with as a top-10 side, I am certainly not happy.
"I will make sure that I will not have players in the team who are happy with that kind of performance."
Preston manager Simon Grayson:
"We showed fantastic character to get back in the game and it was the right result when you see the number of saves Tomasz Kuszczak had to make and the times we hit the post.
"We want to maintain where we are in the league and not drop out of the top-10 position where we are at present.
"We are now looking to a good home game against Burnley when I hope that we can get all three points."
- 6KieftenbeldSubstituted forGleesonat 39'minutes
- 19MaghomaBooked at 38mins
- 7FabbriniSubstituted forLaffertyat 76'minutesBooked at 90mins
- 1LindegaardSubstituted forKirklandat 45'minutes
- 2VermijlSubstituted forHuntingtonat 20'minutesBooked at 68mins
- 6WrightBooked at 58mins
- 4PearsonBooked at 40mins
- 12GallagherBooked at 3mins
- 14GarnerBooked at 35mins
- 13DoyleSubstituted forBeckfordat 72'minutes
- Keith Stroud
- Shots on Target
Second Half ends, Birmingham City 2, Preston North End 2.
Attempt saved. Joe Garner (Preston North End) right footed shot from outside the box is saved in the top centre of the goal. Assisted by Alan Browne.
Kyle Lafferty (Birmingham City) is shown the yellow card for a bad foul.
Delay in match Paul Huntington (Preston North End) because of an injury.
Paul Huntington (Preston North End) wins a free kick in the defensive half.
Foul by Kyle Lafferty (Birmingham City).
Goal! Birmingham City 2, Preston North End 2. Greg Cunningham (Preston North End) right footed shot from very close range to the high centre of the goal following a corner.
Bailey Wright (Preston North End) hits the left post with a header from the centre of the box. Assisted by Paul Gallagher with a cross following a corner.
Greg Cunningham (Preston North End) hits the right post with a left footed shot from the centre of the box following a corner.
Corner, Preston North End. Conceded by David Davis.
Foul by Greg Cunningham (Preston North End).
Kyle Lafferty (Birmingham City) wins a free kick on the right wing.
Foul by Tom Clarke (Preston North End).
Clayton Donaldson (Birmingham City) wins a free kick on the left wing.
Foul by Alan Browne (Preston North End).
Michael Morrison (Birmingham City) wins a free kick in the defensive half.
Delay over. They are ready to continue.
Delay in match Tomasz Kuszczak (Birmingham City) because of an injury.
Corner, Preston North End. Conceded by Jonathan Grounds.