Charlton went 2-0 up thanks to Bradley Pritchard's first-minute strike and an own goal by Rhys Williams, but Marvin Emnes and Scott McDonald scored in the final quarter of the match to snatch a point.
Hull City failed to seal automatic promotion to the Premier League after it was beaten 2-0 by Barnsley.
Jacob Mellis opened the scoring for the Tykes in the fourth minute before
Chris O'Grady added the second five minutes after the break.
Hull's final game of the regular season, in which a win will still mean automatic promotion, is at home to Cardiff City next weekend.
The result meant Barnsley briefly climbed out of the relegation zone but it later found itself back in the bottom three after Peterborough United's 1-0 win over Sheffield Wednesday.
Grant McCann's superb free-kick saw Peterborough move out of the relegation zone as it beat its fellow relegation contender.
McCann curled in a brilliant effort from 30 yards to settle a scrappy game that saw Posh move above Barnsley on goal difference.
Barnsley plays its final game of the season against Huddersfield Town next weekend while Peterborough faces Crystal Palace.
Wolverhampton Wanderers remains in the bottom three as its 2-1 defeat by 10-man Burnley at Molineux sparked a pitch invasion by disgruntled fans.
Danny Ings and
Martin Paterson both scored for the visitor before Burnley defender
Michael Duff was sent off for his second yellow card of the game.
Nouha Dicko pulled a goal back for Wolves two minutes before the final whistle but it was too little, too late as Wolves remains second-bottom with one game against promotion-hunting Brighton & Hove Albion still to play.
A late goal at Elland Road saw 10-man Brighton beat nine-man Leeds United to secure a play-off place for
Gus Poyet's side in an ill-tempered match.
Will Buckley opened the scoring for Brighton in the 10th minute, with Leeds midfielder
Rodolph Austin shown red shortly after after an off-the-ball collision with
Inigo Calderon was sent off midway through the second half for a challenge on El-Hadji Diouf, who scored the resulting penalty before being sent off himself after appearing to abuse the away fans after the goal.
Jose Ulloa then had the final word as he headed a late winner for Brighton.
Meanwhile, Crystal Palace played out a 1-1 draw at Blackburn Rovers as it missed the chance to all but secure its play-off place.
Stephen Dobbie opened the scoring for Palace with a first-half strike before
Jordan Rhodes levelled for Blackburn three minutes before half-time.
James Vaughan scored a hat-trick as Huddersfield Town allayed its relegation fears with a 3-1 win over already-relegated Bristol City.
Vaughan scored twice in the first half and again in the 64th minute, with
Lewin Nyatanga's 90th-minute goal scant consolation for City. The result means Huddersfield is now six points clear of the relegation zone ahead of the final game of the season.
Bolton Wanderers held champion Cardiff City to a 1-1 draw at the City Stadium to take the shine off the league winner's trophy presentation.
Chris Eagles scored the opener for the Trotters before
Craig Noone levelled for the home side midway through the second half from a free-kick.
Elsewhere, Nottingham Forest beat Millwall 1-0 to remain just outside of the play-off places on goal difference to sixth-placed Bolton thanks to
Greg Halford's eighth-minute score.
Ipswich Town moved level on points with Birmingham City after its 3-1 home win.
Luke Chambers and
Daryl Murphy all scored for Ipswich before
Christopher Burke fired a last-minute goal for the Blues.
Blackpool claimed a 2-1 home win over Derby County but it could have been more as
Tom Ince missed a penalty in the first half.
Gary Taylor-Fletcher put the Seasiders ahead in the 18th minute before Ince's spot-kick miss after
Craig Forsyth fouled
Ben Davies levelled for Derby midway through the second half and it fell to
Ludovic Sylvestre to claim a 90th-minute winner for Blackpool.