The former Liverpool striker scored twice within six minutes to help the Trotters to only their second win in eight games, and condemn Chris Powell's men to their first away defeat since September 18.
Until the Frenchman's introduction the visitors looked most likely to break the deadlock, with Danny Haynes spurning two good opportunities, but it was Dougie Freedman's men who emerged with the three points.
It was Freedman's side who carved out the best chance in the opening stages, with Chung-Yong Lee playing a neat one-two with Chris Eagles before side-footing wide after 10 minutes.
At the other end, Dale Stephens' through ball released Haynes clear on goal, but a crucial last-ditch tackle from Mears denied the Charlton number nine, just as he was set to pull the trigger.
Powell's men had goalkeeper Ben Hamer to thank for keeping the scores level soon after, as the former Reading trainee reacted quickly to deny Eagles' swivel shot with an instinctive close-range save.
Nine minutes before the break, Haynes had a second opportunity to open the scoring after Lawrie Wilson stood up a right-wing cross, but he headed wide when well-placed.
The away side continued to find joy on the break, with Adam Bogdan needing to be alert to keep out Kermorgant's left-footed strike.
But it was Freedman's double change eight minutes later, replacing Chung-Yong Lee and Butterfield with Martin Petrov and Ngog, which would prove to be pivotal. The substitution failed to make an immediate effect, indeed the Addicks continued to threaten, with Haynes' shot from a tight angle forcing Bogdan into an important save.
But the Trotters pair were soon able to combine, as Petrov fed the ball into Ngog, who beat two defenders before poking the ball past Hamer to give the hosts a vital lead in the 74th-minute. The Frenchman secured the victory six minutes later, exchanging passes with Kevin Davies before drilling the ball into the back of the net.