A review of Saturday's action in Sky Bet League 1.
Sky Bet League One leaders Leyton Orient saw their 100% record come to an end as Walsall secured a 1-1 draw at Brisbane Road, where both teams finished with 10 men.
Walsall defender Andy Butler (18) was shown a straight red card for a foul on Romain Vincelot and David Mooney (38) put the hosts ahead before half-time.
However, a close-range strike from Craig Westcarr (71) levelled things up, with Vincelot picking up a second yellow card in stoppage time.
Peterborough took advantage to close the gap to three points as they won 1-0 at Rotherham, who had been unbeaten, through a second-half penalty from Grant McCann (51).
Wolves are third after they beat bottom club Sheffield United 2-0 at Molineux with second-half goals from Leigh Griffiths (66) and Bakary Sako (90).
Preston were 2-1 winners over Swindon at Deepdale. Iain Hume (11) and an own goal from Jay McEveley (48) - chipping his own keeper - set the hosts on their way, with Dany N'Guessan (86) scoring a late consolation.
James Hanson scored a stoppage-time winner as Bradford came from behind to beat Shrewsbury 2-1.
Tom Bradshaw (2) got the visitors off to a flying start, but Kyel Reid levelled on the hour. Shrewsbury had defender Dave Winfield sent off for a second yellow card and the Bantams made their extra man count with Hanson's dramatic late winner.
MK Dons are also in the top six after they dispatched Stevenage 4-1, where Patrick Bamford scored twice.
At the other end of the table, Notts County remain in the bottom four after they lost 2-1 at Carlisle.
County had led through Callum McGregor (27), but could not hold on as a free-kick from Matt Robson (41) and David Amoo (54) gave the home side all three points.
Tranmere had Liam Ridehalgh sent off as they were beaten 1-0 at home by Port Vale. Tom Pope missed a first-half penalty for the visitors, but Chris Lines (56) was on target in the second half.
Gillingham ran out 3-0 winners at Crewe, with goals from Cody McDonald (39), Joe Martin (50) and Adam Barrett (70).
Bristol City and Colchester drew 1-1, while an early goal from defender Joe Walsh proved enough to give Crawley a 1-0 home win over Oldham.