Sky Bet League 1 leaders Bristol City suffered a second straight defeat when going down 1-0 at home to Preston North End.After starting the campaign with an unbeaten run of 16 matches, the Robins are now hanging on to their place at the top of the table following Callum Robinson's first-half strike.
Peterborough United were beaten 2-1 at home by Swindon Town, as Andy Williams and Jonathan Obika netted for the away side before Joe Newell bagged a stoppage-time consolation for Posh, who find themselves eighth in the table.
Notts County went down 2-1 at home to Yeovil Town, with the Magpies recovering from having Gary Jones sent off to lead through Mike Petrasso, only for Jordan Clarke's late brace to turn things around and help the visitors move off the bottom.
Crewe Alexandra are now at the foot of the table following a 4-1 defeat at Leyton Orient, with Gianvito Plasmati, Chris Dagnall, Dean Cox and Dave Mooney netting for the hosts and Alex only able to reply through Anthony Grant.
Scunthorpe United also edged above Crewe thanks to a 2-2 draw at Crawley Town, where the Iron went in front through Paddy Madden and Lyle Taylor, only for Dean Leacock and an Izale McLeod penalty to pull it back for the hosts.
Eoin Doyle continued his great season with a double strike as Chesterfield edged out Barnsley 2-1 and Gary Madine was on target as Coventry City prevailed 1-0 at Colchester United.
Romaine Sawyers also scored the only goal of the game as Walsall won at Fleetwood Town and Carl Baker struck early on as MK Dons shaded Port Vale by the same scoreline, with Chris Lines seeing red for the visitors.
Matt Done put Rochdale in front but was later dismissed as Doncaster Rovers came back to win 3-1 through goals from Kyle Bennett, Theo Robinson and Curtis Main.
Bradford City drew 1-1 with Gillingham after the visitors responded to a Leon Legge own goal with Antonio German's stoppage-time leveller.
It was the same score at Bramall Lane as Sheffield United and Oldham Athletic shared the spoils, with Jonathan Forte putting the Latics in front, but Jamal Campbell-Ryce equalised before the visitors had Jabo Ibehre dismissed late on.