Damien Duff produced a moment of magic at Craven Cottage to defeat Everton and kick-start Fulham's Barclays Premier League campaign.
Everton looked comfortable at half-time when they led through Tim Cahill's header but Paul Konchesky's deflected equaliser gave them momentum.
Republic of Ireland winger Duff beat Tim Howard with a powerful drive before the end for his first Fulham goal, giving them their first victory since the opening weekend of the season.
It leaves Everton in trouble as they only have three points from their first four league games, while Fulham can look towards mid-table.
Duff's contribution meant an exciting finale but it was a game short on action before that.
Both teams are in Europa League action this week - Fulham travel to CSKA Sofia and Everton host AEK Athens - and their success last season was built on tight defences, so it was no surprise that this clash was short on clear-cut chances.
Duff tried his luck from long range early on but Howard did not have to move to make the save, then Clint Dempsey went wide with a drive from a similar distance.
David Stockdale, the 23-year-old former York and Darlington goalkeeper, was making his debut and was called into action on the quarter-of-an-hour mark when Jack Rodwell's drive deflected off Aaron Hughes, with the rookie using his knees to block and his team-mates clearing the rebound.
Fulham midfielder Dempsey had a couple of efforts that did not trouble Howard - then the hosts fell behind in the 33rd minute through the familiar sight of a headed goal by Cahill.
Since arriving from Millwall, Cahill has now scored 38 goals for Everton - and exactly half of them have been with his head.
Danny Murphy was booked for a foul in the build-up, with Leighton Baines swinging over the free-kick and Cahill jumping above Dickson Etuhu to head past Stockdale, although he should have been flagged for offside.
It was the Australia midfielder's first strike of the season and he celebrated with his trademark boxing routine at the corner flag.
Leon Osman almost grabbed a second before the interval when he trapped Steven Pienaar's pass and went through on goal - but Hughes was back to make a last-ditch tackle.
Howard had gone untroubled for 45 minutes despite Fulham's frontline strikers returning from the sidelines.
Andrew Johnson came back from his collarbone injury to face his former club. He suffered the problem against Amkar Perm last month and will always have a deformity in his shoulder due to the problem, but he was fit enough to play.
Bobby Zamora partnered him in attack after coming back from an Achilles complaint - but the lack of understanding between the pair was illustrated by a comedy kick-off routine that gifted the ball to Everton.
That would all change in the second half. Johnson forced Howard into a save just after the restart following a sharp turn on the edge of the area, then Etuhu headed wide from Murphy's free-kick.
The fortuitous equaliser came in the 57th minute when Murphy's free-kick was blocked by the defensive wall. It rebounded to Konchesky, whose powerful drive deflected in off Sylvain Distin.
Phil Neville had brought down Etuhu for the free-kick leading up to the goal, then six minutes after the goal Etuhu caught the Everton skipper badly just below the left knee. John Heitinga came on for his debut as a replacement.
Duff's moment, his first goal since arriving from Newcastle, came 11 minutes from full-time. Zamora headed on a long ball and Johnson tapped out wide to Duff. The Irishman made tracks towards the penalty area, cut inside Baines and unleashed a powerful drive past Howard.
Stockdale saved a Marouane Fellaini header from point-blank range and Murphy cleared Joseph Yobo's follow-up shot off the line.
Hughes was also forced into a last-ditch tackle on Aiyegbeni Yakubu as Fulham held on.Reuse content