Birmingham hauled themselves out of the relegation zone and left Sunderland further in trouble at the wrong end of the Sky Bet Championship with a 3-1 win at St Andrew's.
David Davis put the home side ahead after 28 minutes, and it was 2-0 just before half-time when Jeremie Boga headed in from close range.
On 55 minutes, Sam Gallagher added a third before Bryan Oviedo scored a consolation for Sunderland with seven minutes left.
Birmingham moved up to 20th, while Sunderland slipped to second bottom, while at the other end of the table, Derbymissed the chance to close the gap on leaders Wolves as they were held to a goalless draw at Millwall.
Australia international Tim Cahill, who left Millwall almost 14 years ago to join Everton, was paraded to home fans after sealing a return to the club until the end of the season.
Robert Snodgrass scored a 90th-minute winner to give in-form Aston Villaa 1-0 win at Sheffield United, curling in a spectacular left-footed effort from the edge of the penalty area to snatch all three points.
Middlesbrough and Sheffield Wednesday also battled through a goalless draw at the Riverside, which did little for the home side's hopes of making up ground on the top six.
Preston, though, moved to just three points adrift of sixth-placed Fulhamafter a 3-0 win at Nottingham Forest.
North End went ahead after 35 minutes through Billy Bodin, who netted his first goal since moving from Bristol Rovers.
Tom Barkhuizen headed in a second on the hour and Daniel Johnson wrapped things up from the penalty spot after 83 minutes.
Reading eased the pressure on boss Jaap Stam with a comfortable 3-1 win at strugglingBurton, where Jon Dadi Bodvarsson scored twice.
The Royals, who had been without a win in eight Championship games, were ahead after 20 minutes through Iceland forward Bodvarsson, but Burton drew level early in the second half following a penalty from Lucas Akins.
Reading swiftly got themselves back in front through Wales international Chris Gunter after 57 minutes. Bodvarsson wrapped up the points with a third goal for the visitors after 68 minutes.
It finished 0-0 betweenHull and Leeds, which continued the winless Championship runs of both Yorkshire clubs.