West Brom lost ground on Championship leaders Bournemouth as Jamie Paterson's superb strike secured Swansea a 2-1 comeback win.
Karlan Grant's goal after just 52 seconds gave the visitors a deserved 1-0 half-time lead, but Swansea were the better side after the break.
In-form striker Joel Piroe's eighth goal in all competitions got them level and then the Dutch striker set-up Paterson who finished with aplomb.
Fulham climbed above the Baggies into second place in the table after a 2-0 home win against Cardiff.
Substitute Tom Cairney marked his return after a 10-month absence with the goal that set the Cottagers on course for victory at Craven Cottage and increased the pressure on Cardiff manager Mick McCarthy.
Cairney appeared as a half-time replacement for his first appearance since December and took just 12 minutes to fire the Cottagers in front.
Aleksandar Mitrovic added the second in the 63rd minute for his 13th league goal of the season as Marco Silva's side stepped up their early promotion challenge.
Coventry stay fourth despite losing 2-1 at home against Preston. Tyler Walker put the Sky Blues ahead but goals after the break from Patrick Bauer and Emil Riis Jakobsen turned the game on its head.
Goals from Andraz Sporar and Matt Crooks maintained Middlesbrough's march up the table as Neil Warnock's team won 2-0 against Barnsley at the Riverside.
Reading slipped out of the play-off places after they let slip a two-goal lead to lose 3-2 against Blackpool.
Scott Dann and Tom Dele-Bashiru scored to put the Royals firmly in control heading into half time but second-half strikes from Owen Dale and Jerry Yates, his second goal coming from the penalty spot with five minutes remaining, sealed a stirring victory for the Seasiders.
The big game towards the bottom end of the table saw Peterborough win 2-1 at Hull.
Jack Taylor and Josh Magennis scored late in the first half and, after Magennis had blazed a penalty over the crossbar after 66 minutes, Siriki Dembele won it for Posh shortly afterwards.
The only goalless game on the night saw Huddersfield and Birmingham share the points, although that was enough to see Town move up to sixth in the table.