Sheffield United have moved to the top of league one with a point from a goalless draw at Swindon Town, with previous leaders Tranmere not in action until tomorrow.
Stevenage also capitalised on Tranmere not playing this evening to move up to second with a 3-1 win at Yeovil.
It was a good night for the sides at the foot of the table, with wins for three of the four sides that started the night in the relegation places.
A James Tarkowski own goal put Bury ahead at Oldham, with a Steven Schumacher penalty securing the win despite a late goal from Oldham's Robbie Simpson.
Coventry beat promotion hopefuls Crawley 3-1.
Scunthorpe, who began the evening with the worst goal difference in the league, netted four at Walsall.
Shrewsbury slip into the bottom four with defeat at Bournemouth, while Crewe Alexandra jump up the table following a win at Doncaster.
Notts County tightened their grip on the playoff places with a 2-0 win at Colchester United.
Clayton Donaldson's goal secured all three points for Brentford at Fratton Park.
Preston equalised late on the claim a point at home to Carlisle.
Results in full: Bournemouth 2-1 Shrewsbury, Colchester 0-2 Notts County, Coventry 3-1 Crawley, Doncaster 0-2 Crewe Alexander, Oldham 1-2 Bury, Portsmouth 0-1 Brentford, Preston 1-1 Carlisle, Swindon 0-0 Sheffield United, Walsall 1-4 Scunthorpe, Yeovil 1-3 Stevenage