Craig Morgan and Keammar Daley reduced the deficit and netted late consolation strikes for the visitors in the final five minutes, but Charlton were never going to be usurped from such a dominant position.
Huddersfield Town boss Lee Clark was left frustrated after his side were held to a 1-1 draw at home to Walsall at the Galpharm Stadium.
Striker Lee Novak gave the hosts the lead in the 67th minute after a scrappy first half, but substitute Jamie Paterson salvaged a point for the visitors as Huddersfield lost ground on leaders Charlton.
Brentford ended Sheffield Wednesday's 100 per cent home record with a battling 0-0 draw at Hillsborough.
Bees' defender Miguel Llera came closest to breaking the deadlock but his first-half header came back off the Wednesday crossbar. Rob Jones was the next to go close for the home side but the defender's header was somehow scrambled wide from inside the Brentford six-yard box. And the Bees held on to extend their unbeaten away record to seven League games.
MK Dons climbed to fourth after they came from behind to comfortably beat lowly Rochdale 3-1.
Brian Barry-Murphy handed Dale a shock early lead but further first-half goals from Adam Smith, Charlie MacDonald and Mark Beevers sealed the Dons' second successive win.
Joel Grant struck in stoppage time to earn struggling Wycombe a deserved 1-1 draw at Notts County.
The away side's gameplan went straight out of the window after just 44 seconds when Ben Burgess rose highest to meet Alan Sheehan's corner and head the Magpies in front. However, the visitors made their pressure count when Grant wrong-footed Nelson with a shot from outside the area to give Wycombe a point.
Scott Laird netted an 82nd minute winner for Stevenage in a 2-1 victory over Sheffield United at Broadhall Way.
At Prenton Park, Tranmere Rovers were held to a frustrating goalless draw against Colchester United.
Both sides had chances, but there was nothing between the two as Tranmere were leapfrogged by Stevenage and pushed down to eighth spot in the table, while Colchester moved to 11th as a result of the point away from home.
Exeter City and Carlisle United were forced to settle for a point apiece after a goalless draw at St James' Park.
The Grecians had the better of the first half, but could not make their possession tell. Jake Taylor and David Noble both had chances, but Daniel Nardiello came closest with a shot that went just wide of the far post. Exeter's best chance fell to John O'Flynn, but he shot weakly into the arms of Adam Collin from 15 yards, while Miller screwed wide with a great chance for Carlisle in the last minute of the game.
A second-half penalty by Neil Austin gave 10-man Hartlepool a deserved 1-1 draw at Leyton Orient.
The hosts had taken the lead after 25 minutes through Dean Cox and Hartlepool were reduced to 10 men when Paul Murray was dismissed for a second bookable offence. But Hartlepool levelled after 54 minutes when Terrell Forbes brought down striker Andy Monkhouse and Austin sent Ben Alnwick the wrong way from the spot.
Top scorer Andy Bishop struck both goals for Bury as they beat Oldham 2-0 with both sides having players sent off at Boundary Park.
Oldham had keeper Alex Cisak sent off after just 10 minutes when he was shown a straight red card for bringing down Bishop as the striker burst clear on goal and Bury went in front after 22 minutes, Bishop stealing in at the near post to volley home a Lennell John-Lewis cross from six yards. Oldham's Shefki Kuqi wasted a clear chance before Bishop struck again on the half-hour with a close-range header from Steven Schumacher's corner.
Goals from Scott Malone and Wes Thomas were enough for Bournemouth to record their second home win of the season with a 2-0 victory over Scunthorpe.
Midfielder Malone set the game alight in the 20th minute with a wonderful weaving solo effort that handed the Cherries a deserved first-half lead. And Lee Bradbury's side were not to be denied the three points as Thomas pounced on some defensive indecision to drive home a decisive second in the 73rd minute.
Bottom club Yeovil twice fought back to earn a 2-2 draw against fellow strugglers Chesterfield.
Jordan Bowery scored his first goals of the season to twice put Chesterfield ahead, but Yeovil levelled through Gavin Massey and Mark Allott's own goal.