Brentford moved into the Championship Play-Off places with a comprehensive 3-1 win over Nottingham Forest at the City Ground.
Henrik Dalsgaard’s 15th-minute header gave the dominant Bees a half-time lead before Josh Dasilva grabbed the crucial second in the 83rd minute.
Ivan Toney then bagged his 15th of the season five minutes later before Joe Worrall struck a consolation deep into stoppage time.
Elsewhere, Millwall are now winless in their last 10 league games, falling to a disappointing 3-0 defeat at Middlesbrough.
All the goals came in the first 20 minutes with Duncan Watmore striking twice in six first-half minutes, either side of Marcus Tavernier’s curling effort.
And there was also a late defeat for QPR at home to Reading with Michael Olise striking a stunning 89th minute winner to give the Royals a 1-0 win.
The result means the Hoops are now with just one win in their past eight matches – a run which includes five defeats.
Conor Washington opened the scoring in the 37th minute for Charlton but the Dons turned things around before half-time with goals from Joe Pigott and Daniel Csoka.
However, they were struck with a double punch mid-way through the second half as Jake Forster-Caskey and Jonny Williams scored within a minute of each other and Chuks Aneke and Ben Purrington made sure of the win late on.
Leyton Orient also recovered from going behind to beat Newport County 2-1 in an entertaining League Two clash at Brisbane Road.
Jamie Proctor had put league leaders Newport ahead on 20 minutes before the O’s hit back in the second-half.
First Danny Johnson equalised in the 62nd minute before James Brophy completed the turnaround with 20 minutes left.