The Addicks were staring at a fourth straight Valley defeat, and 10th of the season, after Wanderers raced into a two-goal lead through Marvin Sordell and Medo Kamara.
Sordell collected David Ngog’s pass and turned makeshift centre-half Dorian Dervite inside out before tucking the ball past goalkeeper Ben Hamer.
Bolton doubled their advantage when Ngog found Medo 25 yards out and the Sierra Leone midfielder beat Hamer with a swerving drive which went in off the post.
Charlton skipper Johnnie Jackson pulled one back before half-time as he took the ball past two defenders before rifling low into the net, and Bolton fell to pieces in the second half when Sam Ricketts was sent off.
He was shown a second yellow card for a foul on Ricardo Fuller.
Dervite immediately dragged Charlton level as Yann Kermorgant’s curler came back off the post and Dorvite reacted first to lash in his first goal for the club.
Kermorgant struck the winner from the penalty spot to complete an unlikely comeback after Fuller was brought down by Darren Pratley.
Bolton finished with nine men after a late red card for Craig Davies for two bookable offences.