Colchester took a 15th-minute lead when Matt Heath stooped to head in Anthony Wordsworth’s corner from six yards.
But Charlton equalised less than two minutes later through former U’s player Johnnie Jackson, who scored from the spot after Andrew Bond was adjudged to have handled in the area.
Bond restored Colchester’s lead after 24 minutes when he swept home Ashley Vincent’s cross. But the Addicks levelled again six minutes before the break when Jackson converted his second penalty, after David Perkins handled Paul Benson’s bullet header on the line and was dismissed.
The U’s took the lead again in the 64th minute when Wordsworth drove in from 12 yards from Vincent’s cross.
But Benson’s superb close-range overhead kick with 14 minutes to go after substitute Pawel Abbott had headed on secured a point for Charlton, who had Benson sent off with two minutes remaining for a foul on John White.