Sheffield United are now the final team outside the relegation zone, thanks to a 2-1 defeat at Norwich City. Andrew Crofts scored twice for the Canaries.
Crystal Palace drew 0-0 with Bristol City at Selhurst Park, while a late header from Billy Jones earned Preston North End a 1-1 draw at relegation rivals Middlesbrough.
Scott Sinclair converted a late penalty to rescue a point for Swansea City in a 1-1 draw with Barnsley at Oakwell, but it was not enough to prevent south Wales rivals Cardiff City reclaiming second place.
The Bluebirds' 4-2 win over Watford and norwich's win leaves the three automatic promotion contenders locked together on 47 points behind leaders QPR.
A second-half goal from Robert Earnshaw earned Nottingham Forest a 1-0 win at Derby County, completing the double over their Midlands rivals.
Leeds United twice came from behind to secure a 2-2 draw with Portsmouth.
Paul Jewell enjoyed a dramatic debut as Ipswich Town manager as Carlos Edwards' stunning effort from almost 40 yards clinched a 3-2 win over Doncaster Rovers, for whom the former Iron Billy Sharp scored twice.
Ian Harte was both hero and villain for play-off hopefuls Reading in their 1-1 draw with Hull City. Harte's mistake let in Corry Evans to open the scoring after 51 minutes, but his 80th-minute penalty rescued a point.
Leicester City eased to a 4-2 success over Millwall at the Walkers Stadium.