Fernandinho volleyed in an emphatic 89th-minute winner as Manchester City edged FA Cup finalists Aston Villa 3-2 to reclaim second place in English football's Premier League.
A calamitous miskick by Villa goalkeeper Brad Guzan allowed Sergio Aguero to put City ahead in the third minute and Aleksandar Kolarov extended the hosts' lead with a 66th-minute free-kick.
Tom Cleverley and Carlos Sanchez hit back for Villa, punishing errors by City goalkeeper Joe Hart in the 68th and 85th minutes, only for Fernandinho to claim victory with a back-post finish from Kolarov's left-wing corner.
"Today we didn't play well, but we had the spirit and fight to win in the last five minutes despite their late equaliser," said City manager Manuel Pellegrini.
"I was not satisfied with the way we played today, but sometimes you need different things to win games."
The win left the defending champions nine points below leaders Chelsea, having played two games more, and took them above Arsenal and Manchester United.
Arsenal, a point back with two games in hand, visit Chelsea tomorrow (Monday morning NZ time), while fourth-place United travel to Everton.
It was a cruel outcome for Tim Sherwood's Villa, victorious against Liverpool in last weekend's FA Cup semi-final, and left them two points above the relegation zone, having played a game more than the three teams directly below them.
Elsewhere, Liverpool failed to make ground on the Champions League places after drawing 0-0 at West Bromwich Albion in captain Steven Gerrard's 500th league game.
Brendan Rodgers's team are seven points below the top four in fifth place, but they remain in pole position in the Europa League qualifying race after Tottenham Hotspur drew 2-2 at Southampton.
Tottenham, in sixth place, trail Liverpool on goal difference and remain a point above Southampton.
The teams finishing fifth and sixth will qualify for the Europa League, while victory for Arsenal over Villa in the FA Cup final would also send the team finishing seventh into Europe's second-tier competition.
At the other end of the table, Burnley, Queens Park Rangers and Sunderland slipped closer to the relegation trapdoor as Leicester City and Hull City recorded timely victories.
Bottom club Burnley lost 1-0 at home to Leicester in agonising circumstances, with Jamie Vardy notching a 60th-minute winner for the visitors just seconds after Burnley's Matt Taylor had hit the post with a penalty
Burnley are now five points adrift of safety and QPR are just a point better off following a 0-0 draw at home to West Ham United.
Sunderland sank into the relegation places after a 1-1 draw at Stoke City.
Newcastle United are also in danger of being sucked into the relegation scrap after a 3-2 loss at home to Swansea City.
Newcastle have now lost seven consecutive league games for the first time since 1977.