Leeds United snatched a late point at Watford in the Championship thanks to Robert Snodgrass’s late penalty.
Hull City continued their recent impressive form with victory at Coventry City, but both Doncaster Rovers and Barnsley threw away leads to suffer defeats.
A good day for both Sheffield clubs in League One, both Wednesday and United winning, but Huddersfield Town suffered a surprise defeat at home to Bournemouth.
Rotherham United pipped Hereford in League Two, while Bradford City snatched a late equaliser at home against Plymouth Argyle.
Birmingham City 2 Doncaster Rovers 1
Marc-Antoine Fortune (50) opened scoring for Rovers, before Marlon King (62, 88) turned the game on its head.
Coventry City 0 Hull City 1
Corry Evans (60) gave Tigers all three points.
Watford 1 Leeds United 1
Michael Kightly (28) gave the Hornets the lead, before Robert Snodgrass’s late penalty rescued a point.
Barnsley 3 Ipswich Town 5
An amazing eight-goal contest. Barnsley led 2-0 at half-time through Ricardo Vaz Te and a Craig Davies penalty. But second-half goals from Keith Andrews (2), Jason Scotland, Michael Chopra and Danny Collins stunned Oakwell. Davies smashed home a late Tykes consolation.
Oldham Athletic 0 Sheffield Wednesday 2
David Prutton (62) opened scoring for the visitors, before Ryan Lowe’s 84th-minute penalty doubled lead.
Huddersfield Town 0 AFC Bournemouth 1
Harry Arter (19) gave the Cherries a surprise win.
Sheffield United 3 Rochdale 0
Goals from Ched Evans (39, 62) and Richard Cresswell (57) gave the Blades victory.
Bradford City 1 Plymouth Argyle 1
Simon Walton (59) gave visitors the lead in a relegation scrap, before James Hanson (86) equalised for City.
Hereford United 2 Rotherham United 3
Johnny Mullins (13) gave visitors the lead, before Alex Revell (23) made it 2-0. Yoann Arquin (34) and Delroy Facey (42) replied only for Mullins to edge Rotherham back in front.
York City 2 Solihull Moors 2