Leeds dropped their first points of the season as they drew 1-1 at Gillingham after being reduced to nine men, while Leyton Orient extended their lead at the top to four points.
Martin Ling's Orient came from behind to defeat Bristol Rovers 3-2, as their nearest rivals slipped up.
Tranmere drew 2-2 with Northampton, while Yeovil were thumped 3-0 by improving Nottingham Forest and Hartlepool lost 1-0 to Walsall
Walsall's win saw them replaced at the bottom by Bournemouth, who lost 3-1 at home to Carlisle.
In the early kick-offs, Swansea drew with Brighton and Huddersfield overcame Luton.
Joe Garner scored a first-half brace (27 and 39) for high-flying Carlisle, before Jo-Osei Kuffour pulled a goal back nine minutes into the second half to give The Cherries hope. However, Joe Anyinsah struck in the 66th minute to secure victory for Carlisle and pile the misery on Bournemouth.
Penalties either side of half-time from Richard Walker (41 and 54) put Rovers on course for victory over the league leaders. Wayne Gray trimmed their lead after 59 minutes and Tamika Mkandawire equalised in the 77th minute. Jason Demetriou then grabbed a winner nine minutes from time.
Lewis Guy (18) and Matthew Mills (58) found the target as Doncaster eased past Cheltenham at The Keepmoat Stadium.
Leeds appeared set for an eighth consecutive win as they opened the scoring through Sebastien Carole in the 28th minute. But they lost both their strikers as Tresor Kandol and then Jermaine Beckford were sent off. The Yorkshire club came close to holding on but Ian Cox equalised in the first minute of stoppage time.
Struggling Walsall upset the form book as Paul Hall's goal inflicted a first home defeat of the season on Hartlepool and propelled The Saddlers out of the bottom three.
Huddersfield ended a run of three successive defeats with a 2-0 victory over Luton. Luke Beckett struck for The Terriers after 36 minutes and Luton suffered a further setback two minutes into the second half when Paul Furlong was sent off for a second bookable offence. Danny Cadamarteri secured the points on the hour mark, as Luton, who shocked Charlton in the Carling Cup in midweek, slipped below Huddersfield in the table.
Simon Cox's effort after eight minutes was cancelled out by Jay Simpson (56) for Millwall, but Jerel Ifil responded to clinch Swindon's first away win of the season.
Lee Barnard (17) and Byron Moore (26) opened up an early lead for Crewe at Boundary Park, but Mark Allott (36) and Matthew Wolfenden (83) replied as Oldham came storming back. Neil Kilkenny then netted in injury-time to seal a 3-2 victory for the home side.
Port Vale slipped to defeat in their first game since Martin Foyle's departure, despite Luke Rodgers' 59th minute penalty. Leon Clarke (32) and Alan McCormack (48) had already done the damage for Southend.
Swansea squandered the chance to climb into the top six as they played out a goalless draw with Brighton at The Liberty Stadium.
Tranmere fell 2-0 behind before half-time as Andy Kirk (12) and Poul Hubertz (39) struck for Northampton. They could not come back to win the game after the break but goals from Chris Shuker (69) and Gareth Taylor (88) ensured they left with a share of the points and still in second place.
Luke Chambers (57), Junior Agogo (79) and Kris Commons (84) scored as Forest climbed into the top eight with their third win a row.