An 83rd-minute winner from Millwall substitute Gary Alexander sent Coca-Cola League One leaders Leeds to their first defeat of the season.
Neil Harris opened the scoring for the home side after only three minutes, but Leeds were back on level terms nine minutes later through defender Patrick Kisnorbo.
Alexander came on for Steve Morison just after the hour and headed past Casper Ankergren, but Leeds stay top by a point from Charlton and have played a game less.
Charlton looked as if they might take over top spot when a John Nutter own goal put them in front at Gillingham with only 11 minutes remaining.
It was a lead that lasted only three minutes, however, with Simeon Jackson's shot getting past Robert Elliot.
Colchester are up to third following a 2-1 home win over Walsall as MK Dons crashed 3-1 at Southampton.
Kevin Lisbie scored both of Colchester's goals, first after 26 minutes and then the winner from the penalty spot in the 62nd minute after Josh Payne had been fouled by Mark Hughes. Walsall's 28th minute equaliser had come from Darren Byfield.
Southampton fell behind just before the interval to a Jason Puncheon shot, but dominated the second half and scored through Dean Hammond (56), Richard Lambert (74) and substitute David Connolly at the end of added time.
Elsewhere, goals either side of half-time from Charlie MacDonald and Myles Weston ended Brentford's losing run in a 2-0 win over Stockport at Griffin Park.
Pawel Abbott and Reuben Hazell netted to seal a 2-0 victory for Oldham at Brighton, while centre-back Terrell Forbes was Yeovil's matchwinner as they came from behind to beat Bristol Rovers 2-1 at Memorial Stadium.
Chris Martin's fifth goal of the season secured Norwich a 1-0 victory over Swindon in a dull encounter while Carlisle ended a run of seven league games without a win with a much-needed 2-1 victory against injury-hit Southend at Brunton Park.
Winger Gary Roberts scored one goal and laid on another two as Huddersfield thrashed Leyton Orient 4-0 at the Galpharm while Peter Hartley's first goal for Hartlepool secured his hometown club's second home victory of the season with a 1-0 defeat of Tranmere.
Exeter and Wycombe played out a 1-1 draw with Barry Corr heading the equaliser in the dying moments.