Cristiano Ronaldo scored a dramatic - and scarcely deserved - late winner as Manchester United moved nine points clear at the top of the Premiership.
Ronaldo scored the winner - but Fulham were unlucky to lose
Brian McBride put Fulham ahead after Nemanja Vidic and Edwin van der Sar failed to clear the ball before Ryan Giggs volleyed United level.
Van der Sar twice saved from Simon Davies and Tomasz Radzinski hit the crossbar as Fulham pressed forward.
But Ronaldo cut in from the left before drilling home his deflected winner.
The goal was Ronaldo's 16th of the Premiership season and extremely harsh on Fulham, who played most of the better football only to succumb to the Portuguese winger's individual moment of brilliance.
United manager Sir Alex Ferguson jumped up and down at the final whistle - a clear illustration of how much the victory meant to him.
The visiting team had started poorly, while Fulham, deploying a diamond formation in midfield, set about their task with enthusiasm.
Vladimir Smertin shot wide, a Davies cross had Van der Sar scrambling and the Dutch keeper saved from Papa Bouba Diop before McBride struck.
Ferguson had dropped Gary Neville in favour of Wes Brown in an attempt to counter Fulham's aerial threat.
But the United defence made an uncertain start to the game and it was more uncharacteristic hesitation that led to Fulham's opener.
Vidic should have hooked clear a ball over the top as Davies chased him down.
Van der Sar charged out of goal but, close to colliding with Vidic, made minimal contact.
McBride seized on the chance, his low shot hitting the post and rolling into the net, despite Rio Ferdinand's last-ditch attempt to clear the ball.
Shortly afterwards more ragged play led to Van der Sar almost falling over as he tried to control a backpass, the Dutch keeper just clearing the ball as Radzinski closed in.
Ronaldo missed by inches with a strike across goal as the visiting team finally showed some cohesion.
And it was a precise move that led to Giggs' brilliant volleyed equaliser, the skipper striking the ball back across goal and into the bottom corner.
Despite restoring parity, United might have gone into the break a man down but Rio Ferdinand escaped with a yellow card after putting his hands around Radzinski's neck.
Fulham continued to push forward in the second half and Van der Sar came to United's rescue after 49 minutes with a brilliant one-handed save after Davies showed great skill with a volleyed strike on the turn.
Radzinski should have converted a Michael Brown cross but headed against the crossbar and Van der Sar made another brilliant save from Davies.
United's keeper came to his team's rescue again, denying McBride, before Ronaldo struck with his late winner, which clipped Phillipe Christanval on its way to goal.
Fulham appealed for a penalty seconds after Ronaldo scored, when Van der Sar tangled with Heidar Helguson, but the referee waved play on.
Fulham boss Chris Coleman (who felt Heidar Helguson was fouled in the penalty area by Edwin van der Sar):
"The referee has no excuses, he was in the perfect position.
"There is only one way to put it and that is that he lost his nerve.
"Can anybody disagree with me if I say that if that happened at the other end of the pitch, and it's 1-1, the referee is going to give a penalty?
"It's frustrating to say the least but what is the point talking about it. I will get another fine."
Manchester United manager Sir Alex Ferguson:
"I must say that was the most difficult game we have had all season.
"I think it is a significant result, pariticularly scoring late on.
"Ronaldo just kept going and deserved to get the man of the match.
"Credit to Fulham, they never gave use a moment to settle. Fulham will feel very aggrieved with the result."
Fulham: Lastuvka, Volz, Bocanegra, Christanval, Rosenior, Radzinski (John 72), Brown, Diop (Dempsey 71), Smertin, Davies, McBride (Helguson 79).
Subs Not Used: Warner, Routledge.
Booked: Brown, Radzinski, Diop.
Goals: McBride 17.
Man Utd: Van der Sar, Brown, Ferdinand, Vidic (O'Shea 59), Evra (Silvestre 67), Ronaldo, Scholes, Carrick (Saha 66), Giggs, Rooney, Larsson.
Subs Not Used: Kuszczak, Park.
Booked: Ferdinand, Scholes.
Goals: Giggs 29, Ronaldo 88.
Ref: P Walton (Northamptonshire).