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.
At the other end of the table, Derby missed the chance to close the gap on leaders Wolves as they were held to a goalless draw at Millwall.