The Addicks have leaked late goals to lose their last two matches 2-1, but when Yann Kermorgant put them ahead with two minutes to go, Birmingham hardly had any time to respond.
Yet once again Chris Powell's side could not hang on, and Elliott denied them a victory with the leveller in the 94th minute.
There was little sign of the drama to come in the previous 88 minutes, notable only for the poor finishing of both sides on a tricky playing surface.
The first couple of chances fell to the visitors but Chris Burke and Elliott set the tone by firing them over the crossbar.
Charlton soon began to dominate, though, and could have taken an early lead when Johnnie Jackson's clever free-kick found Dale Stephens, only for the midfielder's shot to be deflected wide.
Birmingham upped their tempo after the break, with on-loan West Ham striker Rob Hall looking dangerous. He fired in an angled drive which home keeper Ben Hamer was able to gather comfortably, before latching onto Elliott's pass and flashing a shot across goal.
At the other end Jack Butland was enhancing his reputation by denying Wagstaff from point-blank range following a goalmouth scramble, and also preventing defender Curtis Davies from inadvertently breaking the deadlock with an own-goal.
But just as it seemed both sides could play all day without managing to hit the back of the net, Addicks defender Chris Solly overlapped and crossed from the right. Kermorgant met it well and finally got the better of Butland with a fine header.
However, just as they had in the last two games, Charlton backed off and when Burke drilled a low cross into the penalty area, Elliott was on hand to turn it home with virtually the last kick of the match.