Barnsley condemned promotion hopefuls West Brom to a second straight defeat in Tuesday's Championship action.
West Brom suffered their first home defeat of the season against Crystal Palace at the weekend but were unable to get back to winning ways as they slipped to a 3-1 loss at Barnsley.
First-half goals by Adam Hamill and Iain Hume (penalty) put the Tykes in charge before a late Shelton Martis own goal sealed their third win in five under new boss Mark Robins, with Chris Brunt claiming a late consolation.
That took the Tykes out of the bottom three but the Baggies remain second, though, as third-placed Preston suffered a 2-1 home defeat to Reading and fourth-placed Middlesbrough lost 1-0 at home to Leicester.
Simon Church and Jimmy Kebe struck just before the break and Jon Parkin's late penalty was not enough for Preston to avoid their first league defeat at home this season and deny Reading just their second league win.
Lloyd Dyer struck seven minutes from time for promoted Leicester at Middlesbrough, and the Foxes are now one of five teams in joint fifth on 16 points.
Cardiff now occupy fifth place after Michael Chopra hit four in a 6-1 home win against Derby.
Peter Whittingham and Chopra gave the Bluebirds a 2-0 half-time lead, and although Rob Hulse pulled one back just after the break, Chopra bagged three more in 18 minutes to take his tally to 12 for the season, with Chris Burke the other scorer.
Ipswich are still waiting for their first league win under Roy Keane as sixth-placed Sheffield United snatched a 3-3 draw at Bramall Lane with a last-gasp equaliser by Chris Morgan.
Darius Henderson gave the hosts a ninth-minute lead but Ipswich hit back through Jon Walters and Grant Leadbitter to claim a half-time advantage.
Gareth McAuley looked to have sealed it for the Tractor Boys with 20 minutes left, yet Henderson and Morgan struck in the last 13 minutes to send Ipswich bottom on goal difference.
Bristol City and Blackpool are the other two on 16 points after the Robins beat the Seasiders 2-0 at Ashton Gate.
Nicky Maynard gave the hosts a 28th-minute lead with his seventh of the season before Danny Haynes sealed victory with a 57th-minute strike.
Coventry climbed above Watford into 10th as they came from behind to enjoy a 3-2 victory at Vicarage Road.
Sammy Clingan had given Coventry a 14th-minute lead but Watford led through Tom Cleverley and Will Hoskins goals before Leon Best's late double saw the Sky Blues snatch all three points.
Plymouth edged above Ipswich to second-bottom after winning 2-1 at fellow strugglers Peterborough to enjoy their first league victory this term.
Jamie Mackie and Rory Fallon both struck within seven minutes midway through the second half and Craig Mackail-Smith's late reply was not enough for Posh.
Doncaster and Swansea remain in the bottom half after playing out a 0-0 draw at the Keepmoat Stadium.
And they are just behind Crystal Palace and Sheffield Wednesday, who also drew 0-0 at Selhurst Park.