Southampton came from behind to beat Millwall and stay ahead of Reading at the top of the table, while West Ham had to settle for a draw with Leeds.
Southampton looked set to relinquish their one-point lead at the summit after falling 2-1 behind at Millwall, but Rickie Lambert scored two late penalties to complete a hat-trick and seal an important 3-2 triumph.
Reading have been in scintillating form for a couple of months now and made it nine wins in ten games by sweeping aside Barnsley 4-0 at Oakwell thanks to a brace from Jem Karacan and goals from Jobi McAnuff and Jason Roberts.
West Ham are now three points adrift of the automatic promotion places after drawing 1-1 with Leeds, but it could have been worse for Sam Allardyce's men as Danny Collins only cancelled out Luciano Becchio's opener in the 90th minute.
Nikola Zigic, Marlon King and Keith Fahey helped Birmingham return to winning ways with an impressive 3-0 success at home to Middlesbrough which lifts them above their opponents and into fourth.
Kevin Phillips scored twice as Blackpool climbed to fifth on the back of a 3-1 victory over a Brighton side that was reduced to ten men in the second half when Gonzalo Jara Reyes was sent off.
Crystal Palace and Hull City both extended long unbeaten records with a 0-0 draw at Selhurst Park, although the result leaves the Tigers outside the play-off zone.
The big game at the bottom of the table finished in a goalless stalemate as Portsmouth and Bristol City endured an afternoon of frustration at Fratton Park.
Doncaster's survival hopes have been lifted by a run of decent results in recent weeks but they were brought back down to earth after suffering a 2-1 defeat at home to Derby.
Coventry also remain in the relegation zone after playing out a 0-0 draw with Watford at Vicarage Road.
Ipswich prevailed 3-2 against Peterborough in an entertaining match at Portman Road to continue their encouraging form.