London - Sergio Aguero kept Manchester City in touch with Premier League leaders Leicester as the Argentina striker's late equaliser rescued a 2-2 draw against West Ham on Saturday.
Manuel Pellegrini's side trailed twice to an Enner Valencia double at Upton Park, but Aguero bagged a brace to save City from a defeat that would have been a major blow to their title challenge.
Aguero's second goal came with just 10 minutes remaining and left City three points behind surprise pace setters Leicester in second place.
City would drop to third if Arsenal avoid defeat against Chelsea on Sunday.
Pellegrini's team have won just one away game since September 12 and haven't recorded back-to-back league victories since October 17, but they left east London aware their position would have been worse but for Aguero.
Within 53 seconds of kick-off, Cheikhou Kouyate tore down the left past Yaya Toure before squaring for Valencia to lash past City goalkeeper Joe Hart from 10 yards out.
West Ham manager Slaven Bilic seemed to be aiming to expose Nicolas Otamendi and Martin Demichelis in City's central defence, but that attacking emphasis also left the home side looking open.
That is a real issue when Aguero is on form and he gave the hapless Carl Jenkinson a particularly hard time.
City had been building pressure and Jesus Navas should have done better than produce a scuffed finish from inside the box, but their next effort was more memorable.
Pulling a lofted Toure pass out of the air with his toe, Aguero took another touch to take him away from Jenkinson, before brilliantly lobbing Hammers goalkeeper Adrian from an angle.
It was just a little too wide however as the ball bounced off the post rather than into the net.
It didn't take long for Aguero to get his goal, though, and Jenkinson was again involved.
The right-back was adjudged to have fouled the Argentine in the box in the ninth minute and Aguero rolled in the penalty for the equaliser.
Jenkinson's dismal evening came to a merciful end when he was taken off injured after just 12 minutes.
Hart had to be on his toes to touch away a brilliant 31st-minute Dimitri Payet free-kick that was curling towards the top corner.
That effort came after Demichelis had hacked down Michail Antonio after being put through by Payet's fine pass, but Bilic felt the defender should have been given more than a yellow card.
The Hammers almost caught City cold early in the second half as good play down the right saw Mark Noble crossing for Antonio, who headed narrowly wide.
Fabian Delph hit the post for City with a deflected shot, only for West Ham to then sting City with an immediate response in the 56th minute.
Antonio took a quick throw on the right, which completely caught Pellegrini's defence off-guard.
The ball was carelessly allowed to bounce into the area by Otamendi and Valencia got ahead of the defender to poke past Hart.
It was still West Ham creating the better chances and Alex Song went close with a long-range strike.
Pellegrini realised he had to change something if City were to avoid defeat and he brought on Raheem Sterling for Navas and Kelechi Iheanacho for Delph.
It was Iheanacho who made the difference with his directness and, on 80 minutes, the youngster's run set up Aguero to guide the ball past Adrian for a clinical equaliser.