Kenneth Zohore fired Cardiff back to the top of the Championship table as leaders Leeds capitulated in South Wales.
Zohore, who had not scored since the opening day of the season, struck twice to help the Bluebirds power their way to a 3-1 home win after the visitors had skipper Liam Cooper sent off in first-half injury time for a second bookable offence.
Cardiff went ahead with 28 minutes gone when Zohore converted Junior Hoilett's cross after Mateusz Klich had been caught in possession, and Hoilett extended their advantage from distance nine minutes later.
Cooper’s dismissal did Leeds, who had previously lost only once in the league, few favours and the game was effectively over when Zohore tapped home Sean Morrison’s 59th-minute cross, although Kemar Roofe did pull a goal back with 23 minutes remaining.
Substitute Callum Robinson left it late to maintain Preston's charge as his 88th-minute header from sub Daryl Horgan's ball clinched a 2-1 victory at Hull.
The Lilywhites led courtesy of Tom Barkhuizen’s first-half finish, but looked like having to make do with a point after Jarrod Bowen’s 50th-minute equaliser until Robinson made his mark.
Middlesbrough, who started the day in sixth, welcomed Norwich to the Riverside Stadium defending a five-game unbeaten run in the league but succumbed to the only goal as James Maddison's 13th-minute strike proved sufficient.
However, there were no such difficulties for Ipswich as they romped to a 5-2 victory over struggling Sunderland, who are now without a win in eight.
Former Black Cat Martyn Waghorn headed the home side into a sixth-minute lead which was soon cancelled out by Billy Jones.
However, goals from Jordan Spence and Bersant Celina put Mick McCarthy's men in control and further efforts from David McGoldrick and Grant Ward either side of Aiden McGeady's strike cemented the win.
Famara Diedhiou and Aden Flint fired Bristol City to a 2-0 home victory over bottom-of-the-table Bolton, whose seventh successive league defeat was compounded by Filipe Morais's red card on the stroke of half-time.
Aston Villa extended their unbeaten Championship run to seven games with an emphatic 4-0 away win at lowly Burton.
The visitors led 3-0 at the break through Keinan Davis, Albert Adomah and Robert Snodgrass, and Josh Onomah helped himself to the fourth 19 minutes from time to cement the victory.
Fulham had to fight all the way for the points at Nottingham Forest after Daryl Murphy cancelled out Aboubakar Kamara's opener before the break, with Stefan Johansen and Neeskens Kebano scoring after the restart to secure a 3-1 win.
Millwall's George Saville struck in the 80th and 85th minutes to secure a 2-1 victory over Reading, who had gone ahead with 17 minutes remaining through Dave Edwards.
Joe Ledley marked his Derby debut with a 15th-minuter headed goal at Brentford which looked decisive until Ollie Watkins levelled four minutes from time.
There was late drama too at Oakwell as QPR's Luke Freeman denied Barnsley the points when he made it 1-1 by cancelling out Harvey Barnes's first-half effort with three minutes left on the clock.