Tranmere have extended their lead at the top of League One with victory at Oldham.
Stevenage were unable to capitalise on the Blades' loss, going down 4-1 to Preston.
Hartlepool remain bottom of the table with a loss at Yeovil, while Shrewsbury slip further into the relegation places following a 2-1 loss at Leyton Orient.
Scunthorpe came from behind to beat Coventry, with two goals from Leon Clarke.
Brentford were 2-1 winners over Carlisle.
Notts County and Crawley, fourth and fifth in the table respectively, played out a 1-1 draw.
Results in full: Brentford 2-1 Carlisle, Bury 2-0 Portsmouth, Coventry 1-2 Scunthorpe, Crewe 3-2 Colchester, Doncaster 0-1 Bournemouth, Leyton Orient 2-1 Shrewsbury, MK Dons 1-0 Sheffield United, Notts County 1-1 Crawley, Oldham 0-1 Tranmere, Stevenage 1-4 Preston, Walsall 0-2 Swindon, Yeovil 1-0 Hartlepool