Wolves’ lead at the top of the Sky Bet Championship was cut to 10 points as they were held to a goalless draw at Barnsley while Derby won 3-0 at Birmingham.
Nuno Espirito Santo’s table-toppers are now unbeaten in 13 league matches but were reined in by the Rams, who moved back up to second place with their victory over the second-bottom Blues.
Johnny Russell put Derby 1-0 up in the 19th minute against Rams boss Gary Rowett’s former club, Matej Vydra added a second in the 56th and Andreas Weimann rounded off the scoring in the 89th minute.
Rowett’s side had been pushed into third by Cardiff, whose four-match losing streak in the league came to an end as they thrashed basement boys Sunderland 4-0 at home in the lunchtime kick-off.
Callum Paterson opened the scoring in the first minute of the second half, Black Cats midfielder Didier Ndong was sent off three minutes later for a challenge on Junior Hoilett and Joe Ralls then extended the hosts’ lead in the 55th minute.
Paterson notched his second goal in the 80th minute and substitute Anthony Pilkington’s stoppage-time effort completed the rout as Sunderland’s ex-Wales boss Chris Coleman endured a thoroughly miserable return to the Cardiff City Stadium.
Bristol City’s promotion push suffered another setback as they were beaten 1-0 at home by Norwich for a third league defeat in a row, James Maddison netting for the away side in the 79th minute.
Seventh-placed Leeds had Eunan O’Kane sent off in the first half at Ipswich and succumbed to a single Bersant Celina goal in the 67th minute at Portman Road.
Fulham moved above Middlesbrough into eighth following their 1-0 victory over the Teessiders at the Riverside Stadium, where Oliver Norwood converted a late penalty.
Burton remain 22nd following their 3-1 home loss to QPR, who are now nine points clear of the relegation zone.
After Aramide Oteh’s opener was cancelled out by Lloyd Dyer, Conor Washington restored the visitors’ lead and Massimo Luongo then wrapped things up.
Bolton, a point better off than Burton, dropped to 21st as they lost 2-0 at Brentford, with Florian Jozefzoon and Neal Maupay getting on the scoresheet.
Hull are 20th, level on points with Bolton, having drawn 0-0 with Reading at the KCOM Stadium, and elsewhere, Millwall and Preston drew 1-1 at the Den, Aiden O’Brien putting the hosts in front before Callum Robinson equalised.