Edin Dzeko scored a minute after coming off the bench to give Manchester City a dramatic late win over Fulham.
The Cottagers took an early lead when Pablo Zabaleta was adjudged to have fouled John Arne Riise in the area and Mladen Petric slammed home the penalty.
Fulham keeper Mark Schwarzer made a series of fine saves before Sergio Aguero levelled from close range.
And City were unable to turn pressure into chances before Dzeko slammed home a Gael Clichy cross in the 87th minute.
The champions had failed to triumph in their four previous games in all competitions, so this was a welcome return to winning ways for Roberto Mancini's men - especially because it seemed victory was set to elude them again.
Despite his side's uncertain start to the defence of their title, Mancini declared this week that they would win the league again this season - but on this evidence they still lack the fluidity in front of goal that was so vital to that success.
Their cause in west London was not helped by the questionable early penalty awarded to Fulham by referee Mark Halsey, who was at the centre of controversy last weekend when he made a police complaint after receiving insulting Tweets following his decisions in Manchester United's win over Liverpool.
There was minimal contact from Zabaleta's hand on Riise's midriff as the Fulham defender cut into the area, but it was enough to send Riise tumbling to the ground and, after Halsey pointed to the spot, Petric made no mistake with his penalty.
Any sense of injustice over that decision did not fuel an immediate response from City, who saw plenty of the ball but made few inroads into the Fulham area as they searched for a leveller.
In fact, the Cottagers were looking more dangerous on the break, with Petric wasting a decent sight of goal when he blazed over from the edge of the box after good work by Hugo Rodallega down the left.
Only around the half-hour mark did City begin to seriously threaten and Aguero should have done better when David Silva's corner was flicked on to him at the back post, only to nod into the side netting.
One of Mancini's problems with his side this season has been their failure to take chances like that one, but the main reason City had to wait to equalise was the form of Schwarzer rather than any more poor finishing.
Clichy fired a rasping shot at the veteran Fulham keeper from the edge of the area, the Australian denied Tevez by diving to recover the ball on his line after a goalmouth scramble, and was at full length to keep out Silva's low shot.
Even for City's goal, Schwarzer made another inspired stop to keep out the touch Silva got on Tevez's deflected strike, but he could do nothing to stop Aguero following up to tap home from close range.
The visitors continued to dominate possession after the break but the chances dried up.
Aguero saw a glancing header drift wide and Zabaleta and substitute Mario Balotelli both curled efforts just off target, and it appeared Fulham's well-organised defence would hold out for a point until Dzeko replaced Javi Garcia with four minutes left.
Sixty-six seconds later, Clichy sent over a dangerous cross from the left and Riise's attempt to clear only succeeded in finding Dzeko, who took a touch before firing a powerful shot into the roof of the net.
Fulham boss Martin Jol on Riise's mistake for City's winner: "It was a mistimed ball. I would hit it with my right foot instead of trying to head it. It was a bad clearance.
"I think he will be disappointed because the mistake he made they punished.
"They are a very good team but there is always a possibility against them to play your football like, for example, Arsenal did last week.
"We couldn't play our style, especially in the second half. We couldn't keep the ball, they were stronger than us and more eager to score.
"The only thing we could do was defend, defend, defend and that is probably not enough if you would like a result against them."