Nicky Bailey scored his 11th goal of the season to heap more misery on Championship crisis club Southampton.
Bailey claimed the winner in the 69th minute after a five-goal thriller which leaves both sides facing relegation to League One.
Southampton were roared on by their biggest home crowd of the season after being placed under the control of administrators earlier in the week.
But it was Charlton who were inspired by the bumper gate and took the lead after only seven minutes.
The home defence clearly had their minds elsewhere when Addicks midfielder Jonjo Shelvey was allowed to waltz in the penalty area and despatch his first ever goal in league football.
Top-scorer David McGoldrick gave the home fans something to cheer about ten minutes later when he capped a fine solo run with a well-taken equaliser from 15 yards.
Goalkeeper Kelvin Davis came to Saints' rescue in the 26th minute by saving Tresor Kandol's dreadful penalty after the striker had been tripped by Jan-Paul Saeijs.
But Charlton did not have to wait long before restoring their lead on the hour when Therry Racon placed a looping 25-yard shot into the top right corner of Davis' net.
Former Southend winger Bailey looked to have put the game beyond Southampton's reach nine minutes later when he took advantage of more poor defending by Saeijs to slide in at the back post and convert his 11th goal of the season from a tight angle.
Substitute Bradley Wright-Phillips gave Saints hope with another long-range curler six minutes from time but his fine efforts proved no more than a consolation.
Manager Mark Wotte felt his side should have been awarded a penalty when Jason Euell went down in the box in the dying seconds.
Referee Jon Moss waved away the appeals and Wotte and Charlton counterpart Phil Parkinson were then sent to the stands after an angry touchline confrontation over the incident.