Gillingham stay in first place in League One after scoring in added time to win 2-1 at home against Scunthorpe United.
Sheffield United moved into the playoff places after winning 3-0 at home against Fleetwood Town. Two goals from youngster Che Adams helped the Blades to victory before Billy Sharp added a third to move United into fifth.
David Dunn also got his first victory as Oldham manager with a 2-1 win at managerless Swindon Town, after Danny Philliskirk found the net late on to cancel out Nicky Ajose's equaliser five minutes from the end.
Wigan Athletic extend their unbeaten run to seven games as Will Grigg scored twice in their 3-2 win against Peterborough United, who came back from 2-0 down but Max Power won the game with an 82nd-minute strike.
Chesterfield move up to ninth after running out 3-0 victors at home against Southend United, with Sylvan Ebanks-Blake notching up two goals after Lee Novak gave the Spireites the lead in the eighth minute.
Blackpool extended their unbeaten run to five by drawing 1-1 at home to Millwall, Joe Cole failed to inspire Coventry City as they drew 0-0 at Rochdale, while Burton Albion were held to a goalless draw at home to bottom side Crewe Alexandra.
Results in full (half-time scores in brackets): Barnsley 0-2 Walsall (0-0), Blackpool 1-1 Millwall (0-1), Bradford City 2-1 Bury (1-0), Burton Albion 0-0 Crewe Alexandra (0-0), Chesterfield 3-0 Southend United (2-0), Colchester United 2-1 Port Vale (1-1), Gillingham 2-1 Scunthorpe United (0-0), Peterborough United 2-3 Wigan Athletic (0-2), Rochdale 0-0 Coventry City (0-0), Sheffield United 3-0 Fleetwood Town (1-0), Shrewsbury Town 1-2 Doncaster Rovers (1-1), Swindon Town 1-2 Oldham Athletic (0-1)