Match ends, Birmingham City 1, Nottingham Forest 1.
Nottingham Forest equalised with a 98th-minute penalty against Birmingham City as both sides added another point towards Championship survival.
Lewis Grabban found the bottom corner with the last kick of the game after Lukas Jutkiewicz was adjudged to have brought down Scott McKenna.
Birmingham were seemingly on course for a deserved victory after defender Marc Roberts rose highest to head home an Ivan Sanchez corner in the 49th minute.
After Rotherham's 2-1 loss to Middlesbrough, both sides are now within touching distance of safety.
Grabban's leveller was only Forest's second shot on target, while the spot-kick awarded by referee Jeremy Simpson did seem soft with both players clashing after trying to win a header in the area.
Since his appointment in mid-March, Birmingham manager Lee Bowyer has changed his side's fortunes with Blues having now lost just one of their past seven matches.
There was an early worry for the West Midlands outfit with Scott Hogan limping off in the 19th minute.
Forest nearly opened the scoring on the stroke of half-time but Ryan Yates headed against the bar in a largely uneventful first period.
After taking the lead, both Roberts and Riley McGree had clear-cut chances to double Birmingham's lead.
But the hosts were punished for their sloppy finishing as they stay 19th, 10 points clear of the bottom three, and one point behind Forest who are a place above them.
Birmingham City boss Lee Bowyer told BBC WM 95.6:
"We should have won the game; we deserved to win the game. The effort the players put in, they've been robbed of three points.
"Instead of me talking about how good we were, we're now talking about the penalty decision at the end, which was wrong.
"We deserved to win the game. Unfortunately, through no fault of our own, we haven't."
Nottingham Forest manager Chris Hughton told BBC Radio Nottingham:
"I think, in the end, I have to give credit to the team and we have to look at it as a very good point.
"For the first 20 minutes I thought we were good and were the better team, but after that I thought we were second-best for the remainder of the game.
"I think it is one where I can't say we deserved a draw, but for the fact we pushed right to the end and sometimes you get it."
- 20GardnerSubstituted forHarperat 87'minutes
- 9HoganSubstituted forLekoat 19'minutes
- 17SánchezSubstituted forMcGreeat 63'minutes
- 11BelaSubstituted forMillerat 87'minutes
- 19San José
- 37GarnerSubstituted forRibeiro Diasat 78'minutes
- 15FreemanSubstituted forKnockaertat 64'minutes
- 27KrovinovicSubstituted forGrabbanat 64'minutes
- 33TaylorSubstituted forMurrayat 63'minutes
- 6Mbe Soh
- 18Ribeiro Dias
- Jeremy Simpson
- Shots on Target
Second Half ends, Birmingham City 1, Nottingham Forest 1.
Goal! Birmingham City 1, Nottingham Forest 1. Lewis Grabban (Nottingham Forest) converts the penalty with a right footed shot to the bottom left corner.
Penalty Nottingham Forest. Scott McKenna draws a foul in the penalty area.
Penalty conceded by Lukas Jutkiewicz (Birmingham City) after a foul in the penalty area.
Corner, Nottingham Forest. Conceded by Riley McGree.
Corner, Nottingham Forest. Conceded by Lukas Jutkiewicz.
Lewis Grabban (Nottingham Forest) wins a free kick on the right wing.
Foul by Harlee Dean (Birmingham City).
Lewis Grabban (Nottingham Forest) wins a free kick in the defensive half.
Foul by Maxime Colin (Birmingham City).
Attempt saved. Riley McGree (Birmingham City) left footed shot from the centre of the box is saved in the bottom left corner. Assisted by Amari Miller.
Alex Mighten (Nottingham Forest) wins a free kick in the attacking half.
Foul by Ivan Sunjic (Birmingham City).
Attempt missed. Riley McGree (Birmingham City) left footed shot from outside the box is close, but misses to the left.
Substitution, Birmingham City. Rekeem Harper replaces Gary Gardner.
Substitution, Birmingham City. Amari Miller replaces Jérémie Bela.
Foul by Joe Worrall (Nottingham Forest).
Jérémie Bela (Birmingham City) wins a free kick in the defensive half.
Offside, Nottingham Forest. Joe Worrall tries a through ball, but Glenn Murray is caught offside.