Ovie Ejaria struck twice as Reading stunned Sky Bet Championship leaders Fulham to win 2-1 at Craven Cottage.
The former Liverpool midfielder opened the scoring after 19 minutes and then doubled up eight minutes after the break as the Londoners, for whom Aleksandar Mitrovic and Bobby Decordova-Reid both hit the woodwork before substitute Rodrigo Muniz scored four minutes from time, lost for the second time in three games.
However, West Brom were unable to take advantage as they could only draw 1-1 at Preston, with Matt Phillips’ header in first-half stoppage time denying the hosts, who had gone ahead through Ben Whiteman, victory.
It was Bournemouth who instead climbed to the top of the table after Philip Billing’s second-half strike was enough to secure a 1-0 win at Cardiff.
Birthday-boy Max Bird set crisis club Derby on the road to a fine 2-1 victory over Stoke, with the club facing a points deduction as they prepare to enter administration.
Bird scored his first goal for the Rams on his 21st birthday and a second from Curtis Davies handed them a 2-0 advantage at the break, Tom Ince’s reply proving too little, too late for the Potters.
Interim-boss Steven Reid guided Nottingham Forest to an impressive 2-0 win at Huddersfield.
Chris Hughton lost his job in midweek, but Lewis Grabban’s 22nd-minute strike and an own goal from Lee Nicholls three minutes after the restart secured just a second league victory of the campaign for Forest.
Defender John Egan scored twice as Sheffield United extended their unbeaten league run to four games with a 3-1 win at Hull.
Billy Sharp had earlier opened the scoring and seen a penalty saved by Matt Ingram on his 300th appearance for the Blades, with Keane Lewis-Potter grabbing a consolation with the Tigers’ first Championship goal since the opening day of the campaign.
Substitute Joel Piroe was Swansea’s hero as they fought back from 3-0 down at Luton after just 23 minutes to snatch a 3-3 draw.
The Hatters looked to be cruising after Luke Berry and Elijah Adebayo’s double, but Jamie Paterson and substitute Oliver Ntcham dragged them back into it after the break before Piroe levelled two minutes into stoppage time.
Nahki Wells also left it late to fire Bristol City to a 2-1 victory at former club QPR, who had levelled through Sam McCallum after Chris Martin’s early goal for the visitors.
Middlesbrough found themselves on the wrong end of a fightback as Marvin Ekpiteta’s equaliser and Grant Hall’s own goal earned Blackpool a 2-1 away win. Marcus Tavernier’s opener had put Boro in front.
Peterborough ended their four-game losing run with a resounding 3-0 victory over 10-man Birmingham.
The visitors endured a nightmare afternoon as Harlee Deane’s own goal and a Jonson Clarke-Harris penalty put Posh in the driving seat by half-time, with Jorge Grant’s 50th-minute strike and Gary Gardner’s dismissal rubbing salt into the wound.
George Saville cancelled out Victor Gyokeres’ early opener to hand Millwall a 1-1 home draw with high-flying Coventry, while Barnsley’s home clash with Blackburn finished goalless.