Chelsea leads the way after captain John Terry clinched a 1-0 victory over Everton in stoppage time by bundling the ball over.
Arsenal is just a point behind its London rival as Olivier Giroud scored twice on his return to the starting lineup in a 4-1 victory over struggling Sunderland.
Third-placed City relied on Yaya Toure's goal to see off former manager Mark Hughes' Stoke 1-0 to remain three points from the summit with a game in hand.
Champion Manchester United is still 15 points from the summit but moved up to sixth after ending a three-game winless run with a 2-0 victory at Crystal Palace.
The bottom three remains unchanged, with Sunderland, Cardiff and Fulham in the relegation zone separated by three points.
It's tight at the top too. But at Stamford Bridge, it seemed like Jose Mourinho's side would endure a second successive draw as Everton goalkeeper Tim Howard repeatedly thwarted them.
That was until the third minute of stoppage time when Phil Jagielka fouled Ramires to concede a free kick. Frank Lampard whipped the ball into the penalty area, and it seemed to brush off Branislav Ivanovic's head before Terry appeared to nudge it into the net with the help of Howard's body.
"When you score minute 90-something you can speak about being lucky," Mourinho said. "The reality is that the boys chased that. We were the team that was really trying to win, which is our responsibility.
"We deserved it. I never thought we would score so late. I had hope that we could score a goal before that. Destiny wanted last minute."
It was similarly anxious for City at home, having gone two games without a win.
But the hosts' pressure finally told with 20 minutes to go. Samir Nasir cut in and fed Aleksandar Kolarov, who crossed for the advancing Toure to score.
There was a flurry of goals at the Emirates Stadium, and after Giroud scored in the fifth minute, there seemed little doubt Arsenal would bounce back from its loss to Bayern Munich in the Champions League with a win.
The France striker completed slick buildup play between Tomas Rosicky and Jack Wilshere to slot in the opener after five minutes, and he intercepted a sloppy back pass to net again in the 31st.
Rosicky chipped in the third before half time and defender Laurent Koscielny headed in the fourth 12 minutes after the break. All Sunderland could muster was a late goal from substitute Emanuele Giaccherini, who struck from 25 metres (yards)
United took until the second half at Selhurst Park to find a way past Palace. Robin van Persie broke the deadlock from the penalty spot in the 62nd after Patrice Evra was tripped by Marouane Chamakh.
And Wayne Rooney ensured it would be a comfortable end for United by powering the ball into the net six minutes later from Evra's cross.
Fulham was the only team in the bottom three to get anything out of Saturday's games, with a 1-1 draw against West Bromwich Albion, but the London club remains at the foot of the standings.
It was nearly the perfect start for Felix Magath as Fulham manager after Ashkan Dejagah puts the London club in front at West Brom.
But goalkeeper Maarten Stekelenburg gifted West Brom an equalizer in the 86th when Matej Vydra's shot slipped through his hands.
Cardiff is now just a point above Fulham after being crushed 4-0 at Hull, which climbed clear of danger as Nikica Jelavic scored twice between strikes from Tom Huddlestone and Jake Livermore.
At Upton Park, West Ham's remarkable revival continued as Southampton was beaten 3-1 to make it four successive victories.
After Maya Yoshida headed Southampton in front in the 8th, Matt Jarvis levelled in the 20th before Carlton Cole, West Ham in front within three minutes and Kevin Nolan added the third in the second half.