Bottom side Coventry caused West Ham some problems at Upton Park, but a 66th-minute header from Kevin Nolan was enough to get the home side over the line.

The win sees Sam Allardyce's men move to 47 points, trailing Southampton on goal difference.

Southampton, meanwhile, suffered their second defeat in succession when they slumped to a 3-0 loss at Brighton.

Matthew Sparrow scored a brace and Jake Forster-Caskey also got his name on the scoresheet to help Brighton to the victory, although they finished the match with 10 men after Scottish defender Gordon Greer was sent off four minutes from the end.

Middlesbrough could have moved a point clear at the top with a win at Blackpool, but goals from Matthew Phillips and Lomana LuaLua, plus an own goal from Seb Hines, saw them lose 3-0 at Bloomfield Road.

Cardiff moved ahead of Middlesbrough into third place on goal difference courtesy of their 3-1 win over Reading, with goals from Aron Gunnarsson, Joe Mason and Kenny Miller doing the damage for the hosts.

A goal from Ross McCormack in the seventh minute of stoppage time secured Leeds a 2-1 win over Burnley at Elland Road.

The visitors suffered a hammer blow just before the half-hour mark when defender Kieran Trippier was sent off for a second caution, but they took the lead on 69 minutes through a Charlie Austin goal.

It looked as though that would be enough for Burnley, but an own goal from Brian Easton in the 88th minute levelled proceedings before McCormack's last-gasp winner sealed the three points.

Nottingham Forest climbed off the bottom with a 3-1 win over Ipswich Town, with Marcus Tudgay scoring a double, but they remain second last after Doncaster Rovers also won - a 2-0 triumph against Barnsley.

Portsmouth defeated Watford 2-0, while Peterborough and Birmingham played out a 1-1 draw.

Goals from Neil Danns and Souleymane Bamba lited Leicester to a 2-1 win at Crystal Palace, and a Theo Robinson strike one minute into the second half gave Derby a 1-0 win away against Hull.