Two goals in four minutes from Jack O'Connell and Ian Henderson put Keith Hill's side on their way to victory, and Matt Done's strike on 61 minutes ensured that the Preston's recent winning run would come to an end at Spotland.
Sheffield United's own push for promotion took a setback as Sam Winnall's strike gave Barnsley victory in the South Yorkshire derby at Bramhall Lane, although the Blades are one of a pack of teams tied on 26 points in the top half of the table.
In League One's other Yorkshire derby of the day, Curtis Main's goal capped a second-half fightback from Doncaster Rovers away to Bradford City, who had led at half time through Jon Stead at Valley Parade.
Rovers move ahead of Colchester United, who lost at home to Port Vale. Goals from Mark Marshall and Colin Daniel gave the Potteries club a crucial victory in their quest to avoid relegation from the division.
Crewe Alexandra remain bottom of the table after Izale McLeod's second-half equaliser earned Crawley Town a point, while Yeovil Town played out a goalless draw at Chesterfield to remain in the bottom four.
Results in full: Bradford City 1–2 Doncaster Rovers, Bristol City 1–0 Oldham Athletic, Chesterfield 0–0 Yeovil Town, Colchester United 1–2 Port Vale, Crawley Town 1–1 Crewe Alexandra, Fleetwood Town 1–0 Gillingham, Leyton Orient 2–2 Coventry City, MK Dons 2–1 Swindon Town, Notts County 1–2 Walsall, Peterborough United 1–2 Scunthorpe United, Rochdale 3–0 Preston NE, Sheffield United 0-1 Barnsley