Fulham lost 3-0 to relegation-threatened Barnsley. Cauley Woodrow’s penalty came after Fulham keeper Marek Rodak brought down Jacob Brown, who again got the better of Rodak by lobbing in the Tykes’ second. Woodrow got his second with a neat snap shot.
Meanwhile, Brentford drew 1-1 at Birmingham. Ethan Pinnock took four minutes to cancel out Lukas Jutkiewicz’s 13th-minute opener but the Bees could not find a winner. Preston also suffered a setback with a home defeat to Millwall, courtesy of Shaun Hutchinson heading in from Murray Wallace.
Cardiff’s push towards the play-off positions stalled when they drew 2-2 with Wigan, for whom Kieffer Moore struck twice, his second coming from the penalty spot in the fourth minute of first-half injury time. Josh Murphy had opened the scoring for Cardiff before Kai Naismith equalised, also from the spot, but neither team could find a winner.
Wigan remain third-bottom and could not capitalise on QPR mounting the comeback of the day after going two goals down to Stoke. Sam Clucas and Tyrese Campbell scored for the visitors, before the home team took control. Jordan Hugill began the revival before Eberechi Eze, Bright Osayi-Samuel and Ilias Chair got involved.
Blackburn are three points off the play-off positions after they won 2-0 at Charlton, with John Buckley opening the scoring and Tosin Adarabioyo doubling Rovers’ advantage.
Tom Lawrence scored a tremendous 20-yard strike as Derby took the lead against Huddersfield before Harry Toffolo scored almost as good a goal to level late on.
Sheffield Wednesday went down to 10 men after Osaze Urhoghide received his second yellow card in the 49th minute but had already fallen behind to Yakou Méïté’s strike for Reading, before George Pușcaș and then Sam Baldock in injury time completed the rout. Ryan Tunnicliffe scored the only goal as Luton won at a laboured Middlesbrough.
West Brom 2-2 Nottingham Forest, Birmingham 1-1 Brentford, Cardiff 2-2 Wigan, Charlton 0-2 Blackburn, Derby 1-1 Huddersfield, Fulham 0-3 Barnsley, Leeds 1-0 Bristol City, Middlesbrough 0-1 Luton, Preston North End 0-1 Millwall, QPR 4-2 Stoke, Sheffield Wednesday 0-3 Reading
Leaders Rotherham were denied by an AFC Wimbledon penalty deep into time added on in a 2-2 draw. Kwesi Appiah stepped up to grab a point that lifted the Dons further away from the bottom three. Freddie Ladapo looked to have given Rotherham the win with a close-range finish.
Coventry’s 2-0 win at a blustery Southend kept them in second as third-placed Wycombe won at bottom club Bolton. Ipswich ended their rotten run of recent results and lifted the pressure on manager Paul Lambert with a 4-1 win against Burton in which Kayden Jackson and Alan Judge both scored twice.
Ipswich lie seventh, a place behind Portsmouth, who beat Shrewsbury thanks to goals from Ellis Harrison and John Marquis.
Accrington, having been 3-2 down with 14 minutes to play, eventually scored a 95th-minute winner to prevail 4-3 over Lincoln.
Accrington 4-3 Lincoln, Bolton 0-2 Wycombe, Bristol Rovers 2-1 Blackpool, Fleetwood 2-1 Peterborough, Gillingham 2-1 Doncaster, Ipswich 4-1 Burton Albion, Oxford United 0-1 Sunderland, Portsmouth 2-0 Shrewsbury, Rochdale P-P Tranmere, Rotherham 2-2 Wimbledon, Southend 0-2 Coventry
With leaders Swindon’s match with Scunthorpe postponed due to the high winds caused by Storm Dennis, Exeter were able to draw level on points by winning late at second-bottom Macclesfield. Exeter soared into a two-goal lead but had been pegged back to 2-2, with Fiacre Kelleher scoring the equaliser. Ryan Bowman’s winner four minutes from time broke hearts in Cheshire and Wiltshire.
Plymouth are fourth, just a point behind Crewe in the third automatic play-off spot – with a game in hand – after Antoni Sarcevic’s penalty proved decisive in a comeback win over the two promotion chasers. Chris Porter missed an open goal for the visitors at 1-1.
Port Vale and Colchester are competing for the final play-off position, and it was John Askey’s home team who were victors when the teams me, with Mark Cullen scoring twice.
Macclesfield’s loss completed a clean sweep for the three clubs in deepest danger of relegation, with rock-bottom Stevenage losing at Salford and Morecambe going down at Grimsby.
Cambridge 2-1 Bradford City, Cheltenham 2-1 Leyton Orient, Crawley 0-0 Carlisle, Grimsby 2-1 Morecambe, Macclesfield 2-3 Exeter, Mansfield 1-0 Newport, Oldham 1-1 Forest Green, Plymouth 2-1 Crewe, Port Vale 3-0 Colchester, Stevenage 0-1 Salford City, Swindon P-P Scunthorpe, Walsall 3-2 Northampton