Steven Caulker's late equaliser saw Bristol City earn a 2-2 draw at QPR to deny the Championship leaders the chance to open up a seven-point gap at the top of the table.
Brett Pitman had fired the Robins into a 50th minute lead but a goal from Alejandro Faurlin and Adel Taarabt's penalty had looked set to give Neil Warnock's men all three points.
But Caulker tapped home Jamal Campbell-Ryce's cross to deny them in injury-time and maintain City's recent improvement - they have lost just three of their last 14 games.
Norwich are QPR's nearest challengers after their 1-1 draw at Middlesbrough moved them above Swansea into the second automatic promotion place, on goal difference.
Captain Grant Holt's sixth goal in six games had put the Canaries ahead but Russell Martin inadvertently turned a Julio Arca pass into his own net as Boro earned a point.
Swansea dropped to third in the table as they were beaten 2-1 by Leicester at The Walkers Stadium. Bruno Berner gave Sven-Goran Eriksson's side the perfect start with a sixth-minute opener before Scott Sinclair levelled for Swansea. However, Darius Vassell grabbed a 43rd-minute winner for the Foxes.
At the bottom of the table Crystal Palace gave caretaker manager Dougie Freedman a win in his first game in charge with a 1-0 success over basement side Preston. Steffen Iversen got the only goal but the result was not enough to move the Eagles out of the drop zone.
Sheffield United remain just above the relegation places after coming from 2-0 down to earn a draw at home to Doncaster. A brace from ex-Blade Billy Sharp looked to have put Rovers on their way to victory but Daniel Bogdanovic and Rob Kozluk struck in the final four minutes to secure a draw for caretaker boss Micky Adams.
Hull extended their unbeaten away run to eight games with a 3-2 win at Portsmouth. Jimmy Bullard put the Tigers ahead from the spot before Liam Lawrence struck a penalty of his own to level matters. Matty Fryatt's debut goal and a strike from Nicky Barmby put the visitors 3-1 up, meaning Greg Halford's goal was not enough for Pompey.
Matthew Whichelow's late winner handed Watford a 2-1 win against Scunthorpe at Glanford Park, in a game hampered by continual floodlight problems during the second half.
When the lights were working Martyn Woolford gave the hosts the lead just a minute after Michael O'Connor had blazed over the bar from the penalty spot. And that missed proved costly as Danny Graham's header and Whichelow's strike gave the on-song Hornets a win which moved them into the top six.
Nottingham Forest moved to the brink of the play-off places as a Damien Delaney own goal gave them victory at Ipswich. The Tractor Boys' misery was compounded when Grant Leadbitter was dismissed in injury-time for a wild lunge on Paul Anderson.
Shane Long grabbed a brace for Reading as they leapfrogged managerless Burnley with a 2-1 win at the Madejski Stadium, after Ross Wallace had given the visitors the lead.
Goran Lovre's strike gave Barnsley a 2-1 win over Coventry. Nathan Doyle had put the Tykes ahead before Freddy Eastwood equalised for the away side.
The game between Derby and Millwall at Pride Park finished goalless.