In-form Charlton made it four wins out of four with their first victory at Deepdale in 53 years.
The three-point haul moved them to second in the table, while for Preston's new manager Alan Irvine it was a baptism of fire.
Preston had an early chance after seven minutes when a Paul Gallagher cross was knocked down by Chris Sedgwick and Andrew Carroll had a weak shot saved.
Jerome Thomas shot straight at the Preston keeper and Zhi Zheng was booked for a foul on Sean St. Ledger after 21 minutes.
It was Zheng who forced a great save out of Andy Lonergan who pushed his header around the post for a corner after a Grant Basey cross.
Preston captain Kevin Nicholls had an in-swinging corner cleared off the line.
In the second minute of first-half added time, Thomas hit a low left-wing cross and Zheng slid a shot into the keeper's bottom corner to open the scoring.
Gallagher had a left-foot shot punched clear and Sedgwick followed up only to have a weak shot saved.
Simon Whaley replaced Gallagher and Sedgwick had a close-range right-foot shot well saved by Nicky Weaver from a Whaley cross.
Patrick Agyemang replaced Brett Ormerod and had an overhead kick which went wide.
Charlton brought on Matt Holland and Darren Ambrose for Jose Semedo and Lloyd Sam.
Darren Carter replaced Nicholls and Luke Varney replaced captain Andy Reid, who took a minute to walk off.
Paul McKenna was booked for a foul and substitute Whaley had a right-foot shot saved by Weaver.
In the fourth minute of added time, Chris Iwelumo found Varney down the right and he found the back of the net via a deflected shot to wrap up the points.