Luton boosted their promotion hopes as they leapfrogged fellow hopefuls Nottingham Forest after a 1-0 win at Kenilworth Road.
Kal Naismith scored from the spot eight minutes before the break after Jack Colback's handball in the area, and the Hatters held on despite Sonny Bradley’s 77th-minute dismissal.
Forest’s defeat handed Fulham the opportunity to seal their return to the Premier League with victory over Derby in the late kick-off.
Bournemouth gave further hope to the chasing pack after failing to win for a fourth successive match with a 0-0 draw at home to Middlesbrough.
Sheffield United’s play-off hopes were dealt a blow after a shock home defeat to Reading, who gave a major boost to their survival chances.
Lucas Joao put Reading into a shock lead after 17 minutes but the Blades appeared to have snatched a late point through Iliman Ndiaye in the 90th minute.
Tom McIntyre went down the other end and earned Reading a vital win to move them nine points clear of danger.
Blackburn failed to capitalise on the Blades’ slip up after losing at relegation battlers Peterborough.
Rovers were reduced to 10 men when Tayo Edun received his second yellow card after 41 minutes.
Ben Brereton-Diaz hammered the 10 men ahead after 77 minutes but Sammie Szmodics levelled six minutes later.
Jack Marriot scored the winner three minutes from time but Posh remain nine points adrift of safety.
Coventry kept alive their play-off hopes after coming from 2-0 down to win 4-2 at Birmingham.
Kristian Pedersen headed in from a corner after 12 minutes and Gary Gardner made it 2-0 six minutes before the break.
But Mark Robins’ men were soon back on level terms as Ben Sheaf struck twice before half-time.
And the Sky Blues completed their comeback when Michael Rose headed in after 71 minutes, before Callum O’Hare grabbed a late fourth.
Barnsley are 10 points adrift of safety after a 1-1 draw at Swansea.
Claudio Gomes gave Barnsley a 54th-minute lead but it lasted only 10 minutes before Olivier Ntcham equalised. Michael Obafemi played all 90 minutes but was unable to get on the scoresheet.
Hull secured a 2-1 win over Cardiff.
Allahyar Sayyadmanesh put Hull ahead after eight minutes and Lewis Coyle swept in a left-footed effort to double the lead three minutes later.
Aden Flint pulled one back nine minutes from time.
West Brom snatched an added-time winner to beat Blackpool 2-1.
The Baggies were ahead three minutes before the break through Andy Carroll but Blackpool, now winless in five, hit back to level through Marvin Ekpiteta.
Karlan Grant struck three minutes into stoppage time to keep the Baggies’ unlikely play-off charge alive.
Preston and Millwall also drew 1-1 while Jay Dasilva’s 84th-minute winner gave Bristol City a 1-0 win at Stoke.