Match ends, Birmingham City 1, Charlton Athletic 1.
Lukas Jutkiewicz moved managerless Birmingham City to the brink of Championship safety with a dramatic injury-time equaliser against relegation rivals Charlton Athletic.
Teenage sensation Jude Bellingham created the chance for Jutkiewicz to slide home the leveller after keeper Dillon Phillips kept Harlee Dean's initial effort out from point-blank range.
Macauley Bonne's tap-in just before the hour had looked like it would lift Lee Bowyer's Addicks above Blues in the table with two games remaining.
But Phillips was beaten in the 93rd minute, having made a number of decisive saves, including denying Scott Hogan from the penalty spot in the first half.
The draw ended the Blues' four-match losing run and moved them five points clear of the relegation places with two matches left.
Charlton ended a three-match losing run, but they will rue missing out on maximum points as they sit just two points clear of the bottom three.
While the highly sought after Bellingham was moved onto the bench after starting in the defeat by Stoke on Sunday, he came on to play a season-defining role at St Andrew's.
To start with, however, Dan Crowley - brought in as one of three changes by Blues caretaker bosses Steve Spooner and Craig Gardner - tested Phillips at his near post early on after bursting into the box.
Charlton's best opportunity before the break was one that flashed harmlessly across goal, with a fine Josh Cullen cross just eluding Jonathan Williams as he attempted a diving header at the far post.
A weak pass back from Cullen then got Charlton into their most serious first-half trouble, as Jutkiewicz intercepted the loose ball and ran into the box before being brought down by the onrushing Phillips.
Hogan, however, was unable to capitalise, as Phillips dived to his right to foil the striker, who then launched a volley over the bar on the rebound.
Fine work from Alfie Doughty down the left after the break set Bonne up for the opener.
Phillips protected the advantage by denying Ivan Sunjic soon after and only the woodwork stopped Aiden McGeady adding a second for Charlton.
Bellingham, who has been heavily linked with a move to Borussia Dortmund, lifted Blues with his energy and ingenuity off the bench and eventually played a crucial role in the leveller.
Birmingham City caretaker boss Steve Spooner: "The players showed resolve and resilience in an empty stadium and I think that is an absolute testimony to the desire of the players to get a result for this football club.
"That was a really good performance, up there with some of the quality ones that we have had over the years in terms of the ugly side of the game - that determination, the amount of second balls we won, tackles we put in and distances we ran."
"We are focused on winning two more games this season. Of course you want to get as safe as you can as early as you can, but we want to go to Preston [on Saturday] and show that level of performance again."
Charlton Athletic boss Lee Bowyer: "If we won tonight, for me 49 [points] is safe. Looking at who others have got to play that would have put us on 49 with a better goal difference.
"We should have won comfortably. We hit the post, we missed chances - clear-cut chances. Once you go 2-0 up it's done, the game is finished. We had so many chances for that to happen. But that is why we are in this situation. We have missed too many chances.
"To concede the way we did hurts a lot. Since coming back from this lockdown the amount of pressure and chances we have created we should be well out of sight. There is no way we should be competing to stay in this league.
"We created chances to win two games tonight. Unfortunately, you don't take your chances, you don't win games. You don't win games, you won't stay in this division. Plain and simple."
- 7CrowleyBooked at 89minsSubstituted forBoyd-Munceat 90+5'minutes
- 34SunjicSubstituted forKieftenbeldat 73'minutes
- 20GardnerBooked at 30mins
- 11BelaSubstituted forBellinghamat 58'minutesBooked at 90mins
- 40HoganSubstituted forReidat 59'minutes
- 28Fernández Fernández
- 1PhillipsBooked at 33mins
- 45DoughtySubstituted forPurringtonat 77'minutes
- 14McGeadySubstituted forSarrat 84'minutes
- 28FieldSubstituted forPratleyat 77'minutes
- 7WilliamsSubstituted forMorganat 77'minutes
- 26HemedSubstituted forAnekeat 65'minutes
- David Webb
- Shots on Target
Second Half ends, Birmingham City 1, Charlton Athletic 1.
Attempt missed. Harlee Dean (Birmingham City) header from the centre of the box is close, but misses to the left. Assisted by Marc Roberts.
Foul by Macauley Bonne (Charlton Athletic).
Harlee Dean (Birmingham City) wins a free kick in the defensive half.
Substitution, Birmingham City. Caolan Boyd-Munce replaces Daniel Crowley.
Attempt missed. Maxime Colin (Birmingham City) right footed shot from outside the box is too high. Assisted by Gary Gardner.
Goal! Birmingham City 1, Charlton Athletic 1. Lukas Jutkiewicz (Birmingham City) left footed shot from very close range to the bottom right corner.
Attempt saved. Harlee Dean (Birmingham City) left footed shot from the centre of the box is saved in the bottom left corner. Assisted by Jude Bellingham with a cross.
Offside, Charlton Athletic. Darren Pratley tries a through ball, but Chuks Aneke is caught offside.
Foul by Chuks Aneke (Charlton Athletic).
Maxime Colin (Birmingham City) wins a free kick in the defensive half.
Jude Bellingham (Birmingham City) is shown the yellow card for a bad foul.
Dillon Phillips (Charlton Athletic) wins a free kick in the defensive half.
Foul by Jude Bellingham (Birmingham City).
Hand ball by Chuks Aneke (Charlton Athletic).
Daniel Crowley (Birmingham City) is shown the yellow card for a bad foul.
Josh Cullen (Charlton Athletic) wins a free kick in the defensive half.
Foul by Daniel Crowley (Birmingham City).
Attempt missed. Daniel Crowley (Birmingham City) right footed shot from the centre of the box is too high. Assisted by Maikel Kieftenbeld with a cross.