Swansea went down 2-1 at home to struggling Stoke City, while 10-man Leeds was beaten by the same scoreline away to Millwall.
Those results allowed West Brom to surge to the summit, while Nottingham Forest, which beat Brentford 1-0 at home, moved up to second, with only goal difference keeping it off the top.
Preston North End and Bristol City are the other occupants of the top six after they won their matches, with Derby County, Huddersfield Town, Queens Park Rangers and Sheffield Wednesday also tasting victory thanks to a goal from Australia's Massimo Luongo.
SWANSEA AND LEEDS SHOCKED
Swansea was top of the league and playing winless bottom side Stoke, which had baffled many observers by sticking with manager Nathan Jones this week.
It looked like the match would go exactly as the form book suggested when Andre Ayew scored after 57 seconds, but Sam Clucas levelled the match and substitute Scott Hogan scored from close range in the last minute to seal a stunning victory.
Leeds was unable to overcome a 14th-minute incident that saw Gaetano Berardi sent off for conceding a penalty by fouling Tom Bradshaw, with Jed Wallace converting the Millwall spot-kick.
Bradshaw's backheel made it two on the stroke of half-time and despite Ezgjan Alioski getting a goal back 16 seconds into the second half, Leeds could not salvage a point as Millwall caretaker boss Adam Barrett, who has been linked with the vacant managerial role at Southend United, made a superb start.
WEST BROM TAKES FULL ADVANTAGE
Impressive loanee Matheus Pereira scored one and set up two more as West Brom won its third straight home game despite Cardiff making life interesting towards the end.
Long-range strikes from Pereira, Grady Diangana and Charlie Austin had the Baggies three goals clear with 15 minutes to go, but substitute Danny Ward scored twice for the Bluebirds before Romaine Sawyers sealed the hosts' victory in stoppage-time.
Ben Watson's volleyed winner, his second goal in as many home games, was enough to earn victory for Forest, which is now unbeaten in 10 league games.
Preston is one point behind the new top two after Daniel Johnson scored twice in a 5-1 home win over second-bottom Barnsley, Alex Neil's men scoring four times in 27 second-half minutes.
MITROVIC EARNS DRAMATIC DRAW
Fulham came from behind on two occasions to draw 2-2 with Charlton Athletic at Craven Cottage, a clever finish from on-loan Chelsea midfielder Conor Gallagher having put the visitors ahead in the first half.
Three goals in a mad eight-minute spell after the break meant the match was level after 63 minutes, Ivan Cavaleiro finding the top corner and Aleksandar Mitrovic scoring from close range for Fulham either side of a Macauley Bonne header.
Scott Parker's men dropped two places to seventh, one place behind Bristol City, which beat Reading 1-0 courtesy of Famara Diedhiou's early diving header, Daniel Bentley impressing in goal for the home victors.
Elsewhere, Tom Lawrence, who has been charged with drink-driving, was among the scorers as Luton Town lost 2-0 at Derby.
Huddersfield beat Hull City 3-0 to move out the bottom three, Socceroos man Luongo scored the only goal as Sheffield Wednesday saw off Wigan Athletic and Eberechi Eze netted in QPR's 4-2 win over Blackburn Rovers.