Sunderland climbed into the top two with a 2-1 victory over Wolves, as Birmingham were shocked 1-0 at home to Burnley.
Southampton moved into the play-off places as they piled more misery on bottom club Luton, while promotion hopefuls Preston, West Brom and Cardiff all lost.
Leeds pulled themselves clear of the relegation zone with a late winner against Plymouth, and are replaced in the bottom three by Barnsley after they were hammered at Ipswich.
Birmingham started the day in the driving seat in the race for automatic promotion, but were frustrated by a Burnley side that had not won a game since November until their midweek win over Plymouth.
Steve Bruce's Birmingham controlled the game for long periods but Burnley soaked up their pressure magnificently and grabbed a winner against the run of play when John Spicer seized on a mistake by Martin Taylor and drilled home 10 minutes from time.
Sunderland were given an early lead against play-off challengers Wolves when Daryl Murphy (pictured) scored a superb solo goal after 15 minutes, delightfully flicking the ball over two defenders' heads, controlling the ball on his chest, and striking a powerful volley into the corner.
Ross Wallace doubled Sunderland's advantage after 63 minutes as he nodded home Murphy's cross, but Andrew Keogh's headed goal two minutes later ensured a nervy finish for The Black Cats.
Preston remain in fourth despite being comprehensively beaten 3-0 at Crystal Palace. Shefki Kuqi grabbed a first-half brace for Palace (16 and 21) and Leon Cort added a third on 68 minutes.
West Brom were hit by a three-goal blitz in the space of eight minutes as they lost 3-1 to Stoke at The Hawthorns.
Ricardo Fuller broke the deadlock for Stoke after 14 minutes before a Jonathan Greening own goal (21) and Jonathan Parkin finish (22) left The Baggies with a mountain to climb.
Jason Koumas pulled one back after 74 minutes but The Potters held on to keep alive their own hopes of snatching a play-off spot.
Luton battled hard to remain on level terms with Sunderland at Kenilworth Road, but goals from John Viafara and Marek Saganowski just before half-time gave Saints a 2-0 win.
Sheffield Wednesday extended their unbeaten run to eight Championship games with a 2-1 victory at Cardiff.
Leon Clarke's opener (39) was cancelled out by Roger Johnson (46), but The Owls went ahead for a second time as Deon Burton struck in the 67th minute and Cardiff, who had Simon Walton sent off late on, could not respond.
Leeds slipped behind to Plymouth as Peter Halmosi fired home after 36 minutes, but they hit back to win 2-1 and leapfrog Yorkshire rivals Barnsley.
David Healy levelled for Leeds on the stroke of half-time and Lubomir Michalik found the target with three minutes remaining to secure all three points.
Barnsley lost 5-1 to Ipswich at Portman Road, although the scoreline was perhaps flattering to the home side as three of their goals arrived in the last eight minutes.
Gary Roberts broke the deadlock for Ipswich in only the second minute and George O'Callaghan added a second two minutes before half-time, but a tight finish looked on the cards when Daniel Nardiello popped up for Barnsley (79).
Ipswich had other ideas though and Daniel Haynes (82), Francis Jeffers (86) and Jonathan Walters (90) ruthlessly killed off Barnsley's hopes.
Queens Park Rangers eased their relegation fears with a 1-0 victory over Coventry, Jimmy Smith (53) netting the crucial goal.
Click below for individual match summaries:
Birmingham City 0-1 Burnley
Cardiff City 1-2 Sheffield Wednesday
Coventry City 0-1 Queens Park Rangers
Crystal Palace 3-0 Preston North End
Ipswich Town 5-1 Barnsley
Leeds United 2-1 Plymouth Argyle
Luton Town 0-2 Southampton
Sunderland 2-1 Wolverhampton Wanderers
West Bromwich Albion 1-3 Stoke City