Championship leaders Coventry stumbled again as they were held to a 0-0 draw by 10-man Oxford United at the CBS Arena.
Frank Lampard's side have now won just four of their last 13 Championship matches and, having been 10 points clear in December, will drop to second on Monday if second-placed Middlesbrough beat Sheffield United.
The relegation-threatened U’s had Will Lankshear sent off in the 77th minute but held on for a valuable draw that leaves them four points from safety.
Millwall consolidated their place in the top five with a 2-0 win at play-off rivals Wrexham.
Max Cleworth's own goal from a Femi Azeez cross after 59 minutes gifted the Lions a fortunate lead.
They did not manage a single attempt on goal until five minutes from time when substitute Josh Coburn smashed home the second.
Leif Davis' superb late header gave Ipswich a 2-1 victory at Derby to strengthen their promotion challenge.
The visitors had been given an early lead when Derby skipper Lewis Travis headed a corner into his own net but Derby hit back in the second half and drew level through Rhian Brewster’s penalty.
But Davis had the final word to stall Derby’s push for the play-offs, and the home side ended the match with 10 men after Travis was sent off in added time for a second yellow card.
Leicester's week hit a new low as they lost 2-1 at improving Birmingham. The Foxes, who had six points docked after breaching the EFL’s Profit and Sustainability rules, fell to a third straight defeat and had Bobby De Cordova-Reid sent off before half-time.
Leicester could have few complaints as Ibrahim Osman punished Ricardo Pereira’s awful mistake to give Blues a third-minute lead then Jay Stansfield netted the second, two of many chances the hosts created.
Abdul Fatawu’s memorable equaliser was a lone highlight for Andy King’s much-changed side.
Hull's recent good form ended with a 3-2 defeat at home to Bristol City.
Oli McBurnie scored after 24 minutes, but Bristol City responded with purpose and were 2-1 up at the interval after Rob Atkinson headed home a 33rd-minute corner and Ross McCrorie scored shortly afterwards.
Gerhard Struber's side then put clear water between themselves and Hull when Emil Riis converted Scott Twine’s fine assist after 50 minutes.
Not even the presence of a rogue squirrel on the pitch – the game had to be twice delayed – and a second Hull goal from Kieran Dowell in the 78th minute could prevent Bristol City from claiming three deserved points.
Norwich took another big step away from the Championship drop zone as they beat relegation-rivals Blackburn 2-0 to make it four wins in five league games.
A scrappy encounter was lit up by a quick one-two just past the midway point of the second half, with Anis Ben Slimane on target with his fourth goal in five games and Mohamed Toure netting on his debut.
Slimane opened the scoring after 73 minutes, slotting in the rebound after Oscar Schwartau's shot had come back off the woodwork and Toure quickly added a second from close range.
Alfie Devine secured Preston's first win in five Championship matches as they edged past struggling Portsmouth 1-0 at Deepdale.
The 21-year-old bagged a 40th-minute winner – his sixth goal of the season – with a well-directed header from Andrija Vukcevic’s cross.
Eric Ramsay is still awaiting his first win as West Brom head coach after his side were held to a 0-0 draw at home to Stoke, but Albion did at least climb out of the bottom three with that point.
Cyle Larin scored with his first touch for Southampton to bag the only goal in a 1-0 victory over out-of-form and managerless Watford.