West Brom extended their lead at the top of the Championship to three points after drawing 1-1 with Brentford at the Hawthorns.
Henrik Dalsgaard's 43rd-minute goal for the Bees was cancelled out on the stroke of half-time by Darnell Furlong, keeping the Baggies unbeaten at home in the league this term.
Second-placed Leeds were beaten 2-1 at Fulham after Josh Onomah recorded his first goal for the Cottagers.
After Aleksandar Mitrovic netted his 17th league goal of the season from the penalty spot in the seventh minute, Patrick Bamford levelled with his sixth in eight games.
But Onomah slammed home from a corner in the 69th minute at Craven Cottage to end Leeds’ 11-match unbeaten streak and send Fulham nine points behind in third.
Preston dropped to fourth after a goalless draw at Cardiff.
Huddersfield boosted their survival hopes with a 2-1 victory over playoff chasing Nottingham Forest following goals from Christopher Schindler and Steve Mounie.
Joe Worrall pulled one back with a header 16 minutes from time, but Forest slipped three points off the playoffs.
Andre Ayew's 10th goal of the campaign took Swansea up to sixth with a 1-0 win at Luton, who remain just above the bottom three.
Hull beat Birmingham 3-0 at the Kcom Stadium. Tom Eaves got the ball rolling on the stroke of half-time, Kamil Grosicki added a second in the 58th minute and Keane Lewis-Potter scored a third late on to condemn the visitors to a third straight loss.
Patrick Schmidt's late header lifted Barnsley to within one point of safety following a 2-1 win at Millwall.
The Reds were pegged back in the 85th minute when Ireland forward Aiden O’Brien levelled, having gone ahead through Conor Chaplin’s seventh goal in as many games, but Schmidt won it at the death.
Naby Sarr struck in added time to salvage Charlton a 2-2 draw at QPR. Fit-again striker Lyle Taylor had cancelled out Geoff Cameron's early opener, scoring his first goal since August.
Marc Pugh’s 70th-minute effort looked to be giving the hosts a win until Sarr scored at the death.
Reading moved seven points clear of the relegation zone after beating 10-man Derby 3-0 at the Madejski Stadium.
Charlie Adam netted a fifth-minute penalty after Scott Malone was sent off for bringing down Yakou Meite.
Lucas Joao struck early in the second half and Meite converted a late spot-kick to seal the points.