West Brom remain top of the Championship table but they had a frustrating day at The Hawthorns, losing 1-0 at home to relegation-threatened Wigan — Sam Morsy's 73rd-minute goal moving the Latics out of the bottom three at the expense of Middlesbrough.
Third-placed Fulham kept in touch with a 2-0 home defeat of Preston, with David Nugent's 58th-minute own goal separating the teams until Aboubakar Kamara's added-time second at Craven Cottage.
Luton salvaged a 1-1 draw with fellow strugglers Stoke thanks to James Collins' stoppage-time penalty, after Sam Vokes had given the visitors a ninth-minute lead at Kenilworth Road.
Blackburn also earned a home point with a goal in added time, courtesy of Bradley Johnson.
Sam Gallagher gave Rovers a 25th-minute advantage at Ewood Park but opponents Swansea hit back to lead with goals from on-loan Liverpool striker Rhian Brewster (45) and Andre Ayew's 48th-minute penalty.
Freddie Woodman denied former Swans frontman Danny Graham from the penalty spot, before Johnson’s late intervention meant it finished 2-2.
Barnsley are above the bottom-placed Hatters only on goal difference after a 2-0 defeat at Reading, who moved eight points clear of the relegation zone on the back of goals from Yakou Meite (17) and George Puscas (60)
Huddersfield improved their survival hopes with a stylish 4-0 defeat of Charlton. Karlan Grant scored twice against his former club at the John Smith's Stadium, with Steve Mounie (75) and Juninho Bacuna (90) getting the others.
Scott Hogan scored twice to earn Birmingham a 2-2 draw at QPR. The on-loan Aston Villa striker gave the visitors the lead in the 24th minute at Loftus Road and earned them a point nine minutes from time after goals from Marc Pugh (51) and Jordan Hugill (55) had turned things around in the home side's favour.
Derby were convincing 3-1 victors at Sheffield Wednesday, with Tom Lawrence (seven and 24) and Jason Knight (30) putting the Rams in control before Josh Windass broke through 16 minutes from time.
Brentford led 2-0 at Cardiff with goals from Luka Racic (five) and Bryan Mbeumo (21) but the hosts hit back to draw 2-2 with goals from Junior Hoilett (34) and Joe Ralls (45).
Millwall and Bristol City shared two goals and the points in south-east London, with Pedro Pereira giving City a 10th-minute lead before Tomas Kalas' own goal six minutes into the second half.