Steve Cotterill will be absolutely livid that his team failed to take all three points from the game.
Bristol City created enough chances to have won comfortably, but squandered them. Marlon Pack even missed a penalty.
Nathan Baker gave the Robins the lead four minutes into first half stoppage time, with Harry Lennon levelling for the Addicks three minutes into added on time at the end of the game.
Karel Fraeye made one change to the team that started at Burnley. Ademola Lookman returned for the injured Patrick Bauer. The precocious youngster played on the wide right of midfield, with Alou Diarra moving into defence, to fill the void left by Bauer’s absence.
Charlton lost Diarra to leg and ankle injuries during the first half. The former French international had to be helped to the dressing room at half-time, and looks likely to be outfor some time.
Jordan Cousins – who has been unwell all week – fainted in the dressing room at the break and had to be replaced.
The Addicks midfield was overrun at the start of the second period, forcing Fraeye to introduce El-Hadji Ba, at the expense of Ricardo Vaz Te. Ba turned in an impressive performance.
City spurned numerous gilt edged opportunities, and had to wait until the sixth minute of first half stoppage time before they took the lead.
There was an element of good fortune to the goal. Morgan Fox slipped as he was making a routine clearance. Johnnie Jackson was forced to concede a corner.
Nathan Baker rose to meet the right-wing flag-kick, and headed down to beat Stephen Henderson.
The hosts dominated the early exchanges after the break, but again failed to make the most of their opportunities.
The Robins were awarded a penalty midway through the half, when Harry Lennon was adjudged to have pulled Luke Freeman’s shirt in the area by the referee’s assistant. Marlon Pack’s spot-kick thundered off the underside of the bar, and was cleared.
City fans must have been wondering if their team would be made to pay for their profligacy. The answer was yes.
Deep into added on time, Chris Solly pumped the ball into the area. Simon Makienok flicked on, but Reza Ghoochannejhad faled to get his shot away.
Lookman recycled the ball to Harry Lennon, who put it past Frank Fielding with his right foot.
With Milton Keynes Dons and Rotherham both winning, Charlton lost ground on the teams immediately above them. A win against Wolves on Monday is desperately needed.
Charlton: Henderson; Solly, Diarra (Sarr 32), Lennon, Fox; Cousins (Holmes-Dennis 46), Jackson; Lookman, Ghoochannejhad, Vaz Te (Ba 46); Makienok.
Subs (not used): Pope, Charles-Cook, Moussa, Ahearne-Grant.
Goal: Lennon 90.
Booked: Lookman 52 (foul).
Bristol City: Fielding; Ayling, Flint, Baker, Smith; Bennett, Freeman, Pack, Bryan; Wilbraham, Kodjia (Burns 90).
Subs (not used): O’Leary, Little, Williams, Cox, Reid, Moore.
Goals: Baker 45.
Booked: Wilbraham 75 (time wasting), Freeman 89 (foul).
Referee: Oliver Langford (West Midlands).
Attn: 15,285 (529 Charlton).