Bristol City have increased their lead at the top of League One to five points after beating playoff hopefuls Doncaster Rovers at the Keepmoat Stadium.
Luke Freeman gave the Robins, who slumped to a surprise defeat at Colchester United on Saturday, an early lead before Greg Cunningham doubled their advantage from the penalty spot following a foul on striker Kieran Agard.
Massimo Luongo's brace helped Town end a run of three consecutive defeats and only goal difference keeps the Wiltshire outfit outside the automatic promotion slots.
Daniel Johnson's early effort proved enough for the Lilywhites to take victory, which leaves North End only three points off second place with a game in hand.
Sheffield United moved a step closer to securing a playoff place after goals from Marc McNulty and John Brayford steered Nigel Clough's men to a win at Rochdale, for whom Jack O'Connell netted late on.
Results in full: Doncaster Rovers 1–3 Bristol City, Preston North End 1–0 Walsall, Rochdale 1–2 Sheffield United, Scunthorpe United 0–1 Barnsley, Swindon Town 2–1 Bradford City