It was a disappointing afternoon for City as they appeared to have victory secured after an hour when they were 2-0 ahead.
Manchester City v Fulham: As it happened
But the never-say-die spirit of Roy Hodgson's Cottagers was rewarded as they staged a remarkable recovery to snatch a point.
And it maintained Fulham's excellent record at Eastlands where they had won on three of their four previous Premier League visits, whereas for City it was their third successive draw which equates to six dropped points.
City, who recalled the fit-again Kolo Toure and Craig Bellamy, endured a frustrating opening half against Fulham, who could have stolen ahead when Diomansy Kamara burst through on goal only to over-run the ball enabling keeper Shay Given to save at his feet.
There was a succession of misses from City who also had a Micah Richards goal ruled out for a push by Gareth Barry, while Cottagers keeper Mark Schwarzer saved well to deny Nigel de Jong.
Fulham ought to have taken the lead early in the second half when Clint Dempsey's shot was parried by Given and Bobby Zamora missed an open by goal firing over from six yards.
Schwarzer made a great stop to keep out Wayne Bridge's long-range drive, but from the resulting corner Joleon Lescott finally broke the stalemate in the 53rd minute.
Bellamy's kick was won in the air by Barry, Emmanuel Adebayor shot towards goal and Lescott poked the ball over the line from barely one yard out.
When Martin Petrov doubled the advantage on the hour with a sweetly-struck shot from the edge of the box, City looked to have victory in the bag.
Yet within eight minutes, Fulham had made it 2-2 after an extraordinary turnabout in the fortunes of the visitors.
Zamora chested down a Stephen Kelly cross and Damien Duff fired home the second goal since his August move from Newcastle United.
That was followed by an equaliser from Clint Dempsey, whose weak header from Jonathan Greening's free kick somehow crept past Given's despairing dive.
Fulham might even have snatched victory to complete a remarkable turnabout when Given had to make a super save to keep out a 78th minute header from Brede Hangeland.
- Premier League results
- Premier League table