West Brom slipped to second place on goal difference after a loss to Middlesbrough at the Hawthorns.
Daniel Ayala headed Boro into a 17th-minute lead and an Ashley Fletcher stunner four minutes into stoppage-time sealed their victory.
Fulham moved up to third in the table with a 1-0 win over struggling Stoke as Brentford and Sheffield Wednesday both slipped up.
Jack Butland was excellent for the Potters but he could only parry Anthony Knockaert’s low shot, with Bobby Reid lurking for a tap-in in the 26th minute.
Brentford were undone in the eighth minute against Millwall as Jayson Molumby harassed goalkeeper David Raya into a mistake before Aiden O'Brien slotted into an empty net for the only goal.
Wednesday suffered their first Hillsborough league defeat under Garry Monk as Robert Glatzel and Junior Hoilett put Cardiff 2-0 up after eight minutes.
Skipper Tom Lees got one back for the home side in the 18th minute but that was as good as it got for the Owls.
Goalkeeper Brice Samba was the hero for Nottingham Forest as Wigan were beaten 1-0 at the City Ground.
The Reds stopper made three vital saves, including one to keep out a second-half penalty from Josh Windass, as Tobias Figueiredo’s 60th-minute header sealed a 1-0 win that put Forest into the play-off places.
Bristol City reignited their playoff challenge with a convincing 3-0 home win over struggling Luton.
The hosts took a fourth-minute lead through Marley Watkins and Famara Diedhiou doubled the advantage just before the break from the penalty spot before Andreas Weimann notched City’s third from close range in the 66th minute.
Preston are heading in the other direction as John Swift and Lucas Joao struck early to hand Reading a 2-0 win at Deepdale.
Jackson Irvine scored an 89th-minute winner as Hull came from behind to beat QPR 2-1.
Ilias Chair put Rangers ahead after 20 minutes but goalkeeper Joe Lumley spilled Josh Bowler’s cross just after the half-hour mark and George Honeyman was on hand to equalise.
And the defensive lapses which have plagued QPR this season were evident yet again when Irvine wandered in unchallenged to nudge Jarrod Bowen’s free-kick past Lumley.
Steve Mounie was Huddersfield's match-winner as they also came from behind to claim a fine 2-1 victory over Blackburn.
The Benin striker grabbed a 71st-minute winner for the Terriers after Danny Graham had headed the visitors into a seventh-minute lead, with Jon Stankovic equalising with a splendid diving header.
Goalkeeper Samuel Radlinger earned relegation-threatened Barnsley a point as they held Swansea to a goalless draw in Wales.