Gareth Barry's goal spared City's blushes as they edged out the top-flight's bottom side 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.
In the early kick-off, Arsenal climbed up to third in the table with a 1-0 win at Wigan thanks to a Mikel Arteta penalty. Latics remain in the drop zone.
Everton moved back into the top four as they came from behind to beat West Ham 2-1 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.
Fifth-placed Tottenham and Stoke played out a goalless draw at White Hart Lane, while Norwich saw their 10-game unbeaten run come to an end as they were beaten 2-1 by West Brom, who lie sixth.
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.
In the late kick-off, Liverpool thrashed Fulham 4-0 at Anfield to rise to eighth in the table.
Reds winger Stewart Downing had a rare day to remember as his first Premier League goal for the club after 51 minutes helped towards a comfortable victory.
Martin Skrtel (8), Steven Gerrard (36) and Luis Suarez (90) were also on target.
Substitute Shola Ameobi gave Newcastle a valuable 1-0 home win over struggling 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.
The Magpies and the Black Cats are 14th and 15th respectively.