Leaders Sheffield United blew a two-goal lead as they were pegged back 3-3 in a thriller at Rochdale.
Mark Duffy's free-kick and Dan Lafferty's 25-yard drive put the Blades seemingly in control after just 11 minutes.
But Steven Davies pulled one back before the break and Matty Lund equalised just after half-time.
Billy Sharp put United back in front with his 24th goal of the season, but Nathan Mendez-Laing ensured the Blades dropped two points when he cut inside and hit a cracker with his left foot
In-form Fleetwood were the beneficiaries as they won the battle of second versus third 2-0 at Scunthorpe to pick up a fourth successive victory.
Devante Cole's strike four minutes before the interval and Bobby Grant's late second ensured they climbed above their hosts and cut the gap to Sheffield United to five points.
Fourth-placed Bolton also dropped two points after Tom Elliott's header cancelled out Gary Madine's opener to earn a 1-1 draw for AFC Wimbledon.
Bradford, in fifth, maintained their unbeaten home record thanks to a 24th-minute Alex Jones goal to sink Peterborough 1-0.
Millwall let in a first goal in 10 matches but still beat MK Dons 2-1.
Ben Reeves finally breached the rearguard Lions' rearguard but two from Lee Gregory, the second a penalty in stoppage time, secured the points.
Former Burnley winger Chris Eagles grabbed his first goal for relegation-battling Port Vale - and his first since March 2015 - in a 1-1 draw with Southend, for whom Anthony Wordsworth equalised.
Charlton's difficult season shows no signs of improving after a 2-1 reverse at Northampton.
Michael Smith, on loan from Portsmouth, scored his first Town goal before Leeds loanee Jordan Botaka levelled four minutes later.
But John-Joe O'Toole stabbed home the winner after the hour mark as the Cobblers climbed above their visitors.
Bristol Rovers ended a run six successive draws with a 2-0 success at Oxford.
Ollie Clarke fired them into a 16th-minute lead and Stuart Sinclair grabbed the second nine minutes before half-time.
Goals from Bradley Dack and Cody MacDonald gave Gillingham a 2-1 win at Bury, with ex-Everton striker James Vaughan replying for the hosts.
Erhun Oztumer's 79th-minute penalty earned a 1-0 win for Walsall against nine-man Oldham, who had Lee Croft and Brian Wilson sent off, while a stoppage-time goal from substitute Reece Mitchell gave Chesterfield a 1-0 win at Swindon.
Coventry midfielder Andy Rose needed almost 20 minutes of treatment after a sickening clash of heads before he was carried off on a stretcher off at Shrewsbury.
Sky Blues keeper Lee Burge saved a Tyler Roberts penalty as the match finished goalless.