Gareth Barry's late goal spared Manchester City's blushes as they edged out bottom side Reading 1-0 at a relieved Etihad Stadium.
Roberto Mancini's side trailed local rivals and current league leaders Manchester United by six points in the title race heading into this weekend, and they appeared to be at risk of losing more ground thanks to a dogged defensive effort from the Royals. But Barry rose to head home in stoppage time from David Silva's cross to trim United's lead to three points before their clash with Swansea on Sunday.
Everton moved back into the top four as they came from behind to beat West Ham at Upton Park. Carlton Cole fired the Hammers into the lead, just moments after the Toffees had seen a Leon Osman effort ruled out after Victor Anichebe was adjudged to have fouled Jussi Jaaskelainen.
Anichebe levelled after the break before Cole was sent off for a high challenge on Leighton Baines. Everton capitalised as Steven Pienaar grabbed the winner and the visitors held out after Darron Gibson was dismissed late on.
Run ends for Norwich
Norwich saw their ten-game unbeaten run come to an end as they were beaten 2-1 by West Brom. Robert Snodgrass' free-kick gave the Canaries the lead, but goals from Zoltan Gera and Romelu Lukaku ensured it was the Baggies who took the three points at The Hawthorns.
Substitute Shola Ameobi gave Newcastle a valuable win over QPR. The striker got the only goal of the game after being teed up by Sylvain Marveaux.
Sunderland also claimed an important 1-0 win as they came out on top at Southampton, Steven Fletcher grabbing the winner from Stephane Sessegnon's mishit shot just before half-time.
Arsenal climbed up to third in the table with a 1-0 win at Wigan in the early kick-off thanks to a Mikel Arteta penalty, while Tottenham and Stoke played out a goalless draw.
In Saturday’s late game, Liverpool strolled to a 4-0 winover Fulham at Anfield. The goals were scored by Stewart Downing, Steven Gerrard, Martin Skrtel and Luis Suarez in a dominant performance from the Reds.