Second-placed Peterborough also secured all three points as substitute Nathaniel Mendez-Laing pounced in the 64th minute to secure victory over Shrewsbury.
Wolves remain in third after they were held to a 1-1 draw at home to Coventry as Leigh Griffiths’s opener was cancelled out by substitute Aaron Phillips four minutes from time.
Preston moved up to fourth with a hard-fought 2-1 win over Gillingham with Josh Brownhill and Keith Keane on target, while Bradford lost 1-0 at Crawley with an Emile Sinclair strike separating the sides.
Lucas Akins was also sent off for Stevenage as his side lost 2-1 at Walsall, while two goals in the final 10 minutes gave Brentford a 3-1 win over Colchester at Griffin Park.
Sheffield United moved out of the relegation zone with a 2-1 win over Port Vale at Bramall Lane, while Oldham claimed a 1-0 win over Carlisle at home.
Crewe beat bottom-of-the-table Bristol City 1-0 thanks to a 90th minute penalty from Byron Moore.