Nathan Eccleston was only denied an 11th-minute opener for the Addicks at The Valley when his shot was prevented from finding the back of the net by Steve Tully's block.
Pawel Abbott hit the bar for Charlton just after the hour, but it was Exeter who broke the deadlock on 64 minutes courtesy of Liam Sercombe's low shot.
The Grecians doubled their advantage in the 77th minute after Gary Doherty's poor back header wasn't dealt with by Rob Elliot, allowing John O'Flynn to round the home keeper and tap home.
Elliot tripped O'Flynn inside the box eight minutes later and Ryan Harley stepped up to smash the penalty past the home keeper.
Bradley Wright-Phillips pulled one back on 86 minutes but it was too late to prevent Chris Powell suffering his first home defeat as Charlton manager.