Jonathan Obika (8) headed the home side into an early lead, which was soon cancelled out by Danny Hollands' (15) close-range header from a corner.
The Addicks trailed again when Paul Huntington made it 2-1 at the start of the second half, but were level through on the hour from Yann Kermorgant's 25-yard free-kick and secured a first win in three games when midfielder Green drilled home.
Chris Powell's men now lead Sheffield Wednesday at the top of League One by eight points after the Owls were beaten at Walsall by two injury-time goals.
Ryan Lowe's goal on the hour looked to have set the visitors on course for victory, but Walsall levelled through a deflected effort from Claude Gnakpa.
There was still time for the Saddlers - who had not won in their last eight league matches - to grab a dramatic winner when Emmanuele Smith slotted home.
Stevenage moved into the play-off places with a 6-1 romp at Colchester.
Robin Shroot (9) and Chris Beardsley (25) gave the visitors a comfortable half-time lead.
Ian Henderson (51) pulled a goal back for the Us, but it proved to be a false dawn as goals from Michael Bostwick (64), Scott Laird (71), Luke Freeman (73) and Joel Byrom (82) saw Graham Westley's men run out comfortable winners.
MK Dons are third, just a point behind Wednesday, after they won 3-0 at Leyton Orient in a lunchtime kick-off.
Dean Bowditch (37) put the visitors ahead just before half-time, with a 30-yard effort from Adam Smith (57) and Charlie MacDonald (63) wrapping things up.
Fourth-placed Huddersfield also have 42 points after a first half goal from Jordan Rhodes (34) gave them a 1-0 home win over bottom club Chesterfield.
Jamie Douglas scored in injury time as Preston snatched a point in a dramatic 3-3 draw with Carlisle at Deepdale.
Lee Miller (20) put the visitors ahead with a penalty, but Iain Hume soon levelled with a free-kick.
Preston midfielder Paul Parry (31) made it 2-1 from the spot, only for the Cumbrians to level in first-half stoppage time through Francois Zoko after Carlisle striker Rory Loy had been taken to hospital with a suspected broken leg.
The visitors were ahead for a third time when James Berrett drilled in from 20 yards just after the hour.
However, Douglas snatched a point when he converted from close range after good work by midfielder Paul Coutts.
There was also late drama at Griffin Park, where play-off chasing Brentford earned a 1-1 draw with Bournemouth.
Cherries striker Charlie Sheringham - son of former England forward Teddy - gave the visitors the lead on 19 minutes, which looked to have been enough for all three points only for Leon Legge to head in a late, late equaliser.
On-loan Fulham striker Marcello Trotta netted a hat-trick as Wycombe beat fellow strugglers Exeter 3-1 to move out of the relegation zone.
The 19-year-old Italian turned in Anthony McNamee's cross after just 35 seconds, but Danny Coles (23) equalised.
Trotta struck again five minutes before the break and, after Exeter striker Guillem Bauza had his penalty saved by Nikki Bull, completed his treble two minutes from full-time.
Scunthorpe remain in trouble after they went down 3-1 at home to Bury, despite taking an early lead through Shane Duffy (5).
The Shakers rallied after the break, and levelled through Peter Sweeney (50) before completing the turnaround with goals from Andy Bishop (69) and Efe Sodje (82).
Hartlepool won 1-0 at Oldham with a seventh-minute goal from James Poole.
Tranmere's game against Rochdale was called off after wind caused damage to the Main Stand at Prenton Park.