Chelsea’s victory momentarily gave them a four-point lead at the summit, but Arsenal closed the gap to a point by overwhelming Sunderland 4-1 and City are three points back with a game in hand after edging Stoke City 1-0.
Arsenal had been dealt a dispiriting 2-0 defeat by Bayern Munich in the Champions League on Wednesday and they reacted in style by outclassing third-bottom Sunderland at the Emirates Stadium.
Left on the bench against Bayern, Olivier Giroud was restored to the starting line-up to face Sunderland and the Frenchman responded with a brace of goals in the first 31 minutes.
The former Montpellier man also played a role in the glorious move that led to Tomas Rosicky chipping in Arsenal’s third goal before half-time, with Laurent Koscielny heading home a fourth in the 57th minute.
Emanuele Giaccherini claimed a late consolation for Gus Poyet’s side, who face City in next weekend’s League Cup final.
City also tasted Champions League disappointment in mid-week, losing 2-0 at home to Barcelona, and their return to winning ways was not quite as straightforward as Arsenal’s.
Manuel Pellegrini’s side toiled in front of goal against Stoke at the Etihad Stadium and there was a sense of relief when Yaya Toure broke the deadlock from Aleksandar Kolarov’s cut-back in the 70th minute.
Earlier, Terry’s last-gasp winner allowed Chelsea to hold onto top spot as they snatched a 1-0 victory against Everton at Stamford Bridge.
With Everton goalkeeper Tim Howard in sparkling form, Chelsea looked set to drop points until Terry marked his return to the team after a three-game absence by toeing home a Frank Lampard free-kick in the 93rd minute.
“When you score in minute 90-something, you could speak about being lucky, but the reality is that the boys chased it,” said Chelsea manager Jose Mourinho.
“I feel sorry for Everton because a point would have been fair, but we were the team that was trying to win, which is our responsibility.”
Terry’s strike was a bitter blow for an enterprising Everton side, who squandered an opportunity to close the eight-point gap that currently separates them from fourth-place Liverpool.
Meanwhile, Felix Magath saw victory snatched from his grasp in his first game as Fulham manager after a 1-1 draw at West Bromwich Albion.
Fulham were on course to climb off the foot of the table thanks to Ashkan Dejagah’s 28th-minute goal, only for Matej Vydra to plunder an 86th-minute equaliser with a shot that squirmed past Maarten Stekelenburg.
Vydra’s goal meant that Cardiff City remained second from bottom after they were crushed 4-0 at home by Hull City, who prevailed through a Nikica Jelavic brace and strikes from Tom Huddlestone and Nikica Jelavic.
Hull are now six points above the relegation zone and West Ham United are a point better off in 10th after goals from Matt Jarvis, Carlton Cole and Kevin Nolan set up a 3-1 win at home to Southampton.
Later on Saturday, Wayne Rooney will hope to celebrate his new Manchester United contract with victory when his side visit Crystal Palace, a day after he committed himself to Old Trafford until 2019.