London - Manchester City needed late goals from substitutes Jesus Navas and James Milner to clinch a 4-2 victory at Fulham after Vincent Kompany scored for both sides on Saturday.
City, who are now in second place in the Premier League table, had gone in at the break 2-0 up after captain Kompany had added to Yaya Toure's sublime free-kick opener.
The Belgium defender then put through his own goal in bizarre fashion to draw Fulham level after Kieran Richardson pulled one back for the home side in the second half.
But Manuel Pellegrini had introduced Spain winger Navas and England midfielder Milner after the break and they proved crucial changes as both struck in the final 12 minutes to spare City's blushes.
City are one point behind leaders Liverpool, although they will slip back down the table after Monday's meeting between Arsenal and Chelsea, who are third and fourth respectively.
Fulham remain second bottom of the table, one point adrift of safety.
The Cottagers, robbed of Dimitar Berbatov up front because of injury, pressed City from the first minute and were particularly keen to attack Gael Clichy, who had been switched to right-back because of injury to Pablo Zabaleta.
City needed England goalkeeper Joe Hart, making his first Premier League start since October, to make a quality save to deny Adel Taarabt, playing up front on his own, in the 13th minute.
The opportunity had followed a slip by Clichy. City almost opened the scoring seconds later as Edin Dzeko laid the ball back to David Silva, whose first time effort smashed back off the crossbar.
The recalled Hart denied Taarabt again as the on-loan QPR forward tried his luck from range, but Fulham were soon under pressure when Silva was tripped on the edge of the box by Steve Sidwell.
It was perfect range for Toure and the Ivory Coast midfielder curled it in off the crossbar for the 23rd-minute opener.
Alvaro Negredo's powerful run ended with Dzeko's shot being blocked by a defender but within seconds Hart was forced to dive at the other end to make another save to foil Taarabt.
City doubled their lead three minutes before the break through another free-kick move that saw Fulham fail to pick up Martin Demichelis at the back post and although his header was blocked Kompany was there to stab home the rebound.
The excellent Taarabt set up Richardson to make it 2-1 in the 50th minute however.
The Moroccan's speedy run down the left caught City flat-footed and Richardson, having run from deep, arrived unmarked to slot home.
Sidwell put a diving header just wide as Fulham threw men forward and Dzeko was replaced before the hour mark by Navas, who instantly fired a good chance wide.
Then came Kompany's mishap in the 69th minute, with the defender somehow slicing his attempted clearance of Sascha Riether's low cross over Hart and into his own net.
Navas restored City's lead in the 78th minute, firing through the goalkeeper's legs after Silva's pass has sent him away on the right.
Fellow replacement Milner made sure of victory with a fourth goal five minutes later after Aaron Hughes had failed to cut out Negredo's pass.