Charlton came away from Ashton Gate empty handed in the cruellest possible fashion on Wednesday night, as Bristol City came from behind to snatch a winner deep into injury time.
Macauley Bonne opened the scoring in a frantic, end-to-end game, before Famara Diedhiou equalised for the hosts. A draw looked to be certain until Josh Brownhill fired home the winner for Bristol City in the eighth minute of stoppage time.
Lee Bowyer opted to make four changes from the side which toppled Derby County at the weekend with Deji Oshilaja, Jason Pearce, Sam Field and Beram Kayal coming in to the starting eleven.
The opening exchanges reflected that of a game with much bigger meanings than a regular league fixture with nervous touches and mis-kicks from players on both sides, perhaps due to the wet conditions.
The first real chance came the way of Conor Gallagher who did well to get on the end of Kayal’s cross, but his header went across the face of goal with no Charlton shirt arriving to poach the ball.
Bristol City had a chance of their own moments later when a Brownhill corner was swung in. With Charlton scrambling to clear their lines, they were fortunate not to be punished and eventually hooked it away.
With a quarter of an hour gone, both sides began to grow into the game but neither team had tested their opposing keeper with any convincing threat.
But a few minutes later, Dillon Phillips was called into action when he had to make an, albeit simple, save from an audacious Brownhill effort.
Bristol City had Taylor Moore to thank for keeping it at 0-0 on 23 minutes, when his last ditch block denied a clear chance for Jonathan Leko to open the scoring after the forward had got himself onto the end of some good build up play down the left wing.
Likewise up the other end of the pitch, Pearce was the hero for the Addicks when he put his body on the line in typical fashion to block a shot on the turn from the hosts.
With half an hour gone, Field’s time on the pitch was cut short prematurely when, from a seemingly innocuous challenge, he picked up an injury which saw him be stretchered off and replaced by Darren Pratley.
And Field was swiftly followed off by Jake Forster-Caskey who limped off the field to be replaced by Chris Solly. Another injury to frustrate Bowyer, who will also be without Leko for the trip to West Brom at the weekend through the conditions of his loan deal.
With five minutes of normal time in the opening half to go, Charlton began to turn the screw, forging a number of chances down the right-hand side but to ultimately no avail.
The Robins weren’t without chances of their own, however, forcing a flurry of corners in injury time but much like their opponents, they failed to make their pressure count.
The second half started with yet another mistake, Bonne’s pressure on a red shirt forced a sloppy pass, but a foul on a Bristol player during the subsequent cross saw the chance be snuffed out.
With 51 minutes played, Charlton began to storm the hosts' back line with Gallagher forcing a foul on a wide position. The resulting free kick was played in and, despite not scoring, the Addicks recuperated from a clearance and charged again finalising in Bonne firing just wide of the post from the left of the box.
Kayal was next up to have a pop on goal this time forcing a save from Daniel Bentley in the Bristol goal with a ferocious effort from 25 yards.
Charlton had their tails up and were breathing down Bristol City’s neck, snatching the ball off a hesitant side at every given opportunity.
With an hour played it was still somehow tied at 0-0 with the Addicks battering the Robins’ shaky defence.
Four minutes later and the pressure well and truly shifted with Bristol testing Charlton’s backline and forcing some heroic blocks on the line from the defence and an incredible save from Phillips who denied what would have been a certain goal.
But Charlton’s breakthrough finally came on 65 minutes when, from a counter-attack, Bonne rounded Bentley and slotted into an empty net from a tight angle to send the supporters behind the goal wild.
Phillips was called into action a number of times after the breakthrough, either side of a Bonne chance, but the stopper was in the mood for the miraculous and pulled off a pair of eye-catching saves to preserve the Addicks' lead.
His opposite would then pull off an equally good, if not better save. Despite being a good 15 yards wide of his post, Bentley somehow managed to scramble back and deny a shot from Pratley with a full-stretch save to palm it wide of the post.
But, with just over a quarter of an hour played, Bristol smuggled in their equaliser. Substitute Diedhiou latched onto the end of a cross from the right and saw his initial effort blocked but was able to get a nod on the rebound to draw the hosts level.
With less than 10 minutes to go Charlton began to mount another charge to ensure an end-to-end half in an end-to-end game.
With five minutes to go Diedhiou was sent off after lashing out and booting Pearce, who was on the floor during a scramble, with a 15-man melee ensuing afterwards.
The sending off had left a sour taste in the mouth of the game which would end in rather fiery fashion, with plenty of niggly challenges coming in as both sides searched for what would surely be the winner.
And the winner did come. Bristol city snatched a late goal in the eighth minute of stoppage when Brownhill latched onto the end of an over the top ball and fired home the winner. A gutting end to what had been a spirited performance from the Addicks which showed passion and grit.
Bristol City: Bentley, Brownhill, O’Dowda, Weimann, Semenyo (Diedhiou 54), Eliasson (Rodri 54) , Moore, Rowe, Williams, Pereira, Massengo (Palmer 68)
Subs (Not Used): Maenpaa, Wright, Baker, Diedhiou, Szmodics, Rodri, Palmer
Goals: Diedhiou 75, Brownhill 90+8
Booked: Pereira 83 (foul on Cullen), Weimann (90+7 foul on Aneke)
Sent off: Diedhiou (87, Violent conduct)
Charlton: Phillips, Oshilaja, Lockyer, Pearce (c), Forster-Caskey (Solly 36), Gallagher, Field (Pratley 33), Kayal (Aneke 72), Cullen, Leko, Bonne
Goal: Bonne 65
Subs (Not Used): Maynard-Brewer, Aneke, Sarr, Oztumer, Davison
Booked: Kayal (14 foul on Eliasson), Pratley (55, Dissent), Phillips (85 time wasting), Bonne (90 time wasting), Aneke (90+4 time wasting)
Referee: James Linington
Attendance: 20,960 (1,310 from Charlton)