Brentford have moved equal on points with leaders Tranmere after a fine 2-1 win at Notts County.
Clayton Donaldson scored his fifth consecutive goal two minutes from time to complete the victory after the Bees went a goal down.
Tranmere, meanwhile, played out a goalless draw with fellow high-flyers Sheffield United.
Bottom side Hartlepool's poor season continued as they lost 1-0 at MK Dons, while Scunthorpe ended Leyton Orient's winning run with a 3-1 away victory.
© PA Photos
David's McGoldrick's brace helped pull off the result of the afternoon as Coventry shocked Doncaster to defeat them 4-1 at the Keepmoat Stadium.
Yeovil also scored two late goals to grab an unlikely point at Walsall.
Results in full: Bournemouth 1-0 Colchester, Crewe 1-0 Bury, Doncaster 1-4 Coventry, Leyton Orient 1-3 Scunthorpe, MK Dons 1-0 Hartlepool, Notts County 1-2 Brentford, Oldham 0-2 Swindon, Portsmouth 0-0 Preston, Sheffield United 0-0 Tranmere, Shrewsbury 2-1 Carlisle, Stevenage 1-2 Crawley, Walsall 2-2 Yeovil