The Shrimpers had Jean-Francois Christophe controversially sent off for violent conduct in the 25th minute but took the lead six minutes later when Matt Paterson's shot from distance squirmed under Rob Elliot and trickled over the line.
Steve Mildenhall pulled off a string of saves to deny the Addicks, while Simon Francis and Adam Barrett cleared off the line.
But Charlton finally got their equaliser after 73 minutes when substitute Kyel Reid's cross from the left was stabbed home from close range by Akpo Sodje.
Southend pressed for a winner, with Simon Francis' free-kick hitting the crossbar and sub Francis Laurent's follow-up being cleared off the line by Nicky Bailey.
But it was Phil Parkinson's troops who got the three points in the 91st minute when Reid ran onto a ball over the top and fired in a low shot to give Charlton only their second win in eight matches.