Two goals in the dying minutes from Louis Saha and Jack Rodwell handed Everton their first win in four games.
The scores were level after brilliantly taken goals from Everton's Royston Drenthe in the second minute and Fulham substitute Bryan Ruiz after 67 minutes.
The game seemed headed for a draw before Bobby Zamora missed an open goal for Fulham and Saha capitalised to put Everton in front in the 90th minute.
Rodwell finished it off with a strike from the edge of the box in added time.
It was an amazing finale to a game that had started brightly but fizzled out.
But it did produce four goals of the highest quality - and what must be a contender for miss of the season.
The game was barely two minutes old when Everton opened the scoring with a stunner.
In their first attack, Rodwell laid the ball back and Dutchman Drenthe, on loan from Real Madrid, curled the ball past Mark Schwarzer with his left foot.
Everton were dominating the early stages with Leighton Baines's left foot causing problems for the Fulham back four and setting up headers from Marouane Fellaini and Rodwell.
Drenthe tried his luck again from long range but this time Schwarzer saved despite a deflection.
Fulham's first decent chance fell to former Liverpool full-back John Arne Riise but his dipping shot from the left edge of the penalty area flew over the bar.
Danny Murphy, back in the side after injury, followed suit letting rip with his right foot. The ball hit the post, hit goalkeeper Tim Howard on the head and flew across the goal to go out for a corner.
Martin Jol's men were getting back into the game and Howard had to be at his best to stop Brede Hangeland finding the equaliser with a close-range header.
DID YOU KNOW?
Fulham's defeat against Everton was their 21st game in all competitions in a season that started with Europa League qualifying rounds in June.
The second-half started slowly with Everton allowing Fulham to come at them.
The outcome was a midfield battle with chances - plentiful in the first-half - drying up.
But the game changed with the introduction of Ruiz for home skipper Danny Murphy after 67 minutes.
The former FC Twente striker, signed in the last hour of the summer transfer window, met a Dempsey pass into the area and executed the deftest of chips with his left foot to give Howard no chance.
There were still chances for both sides, but by far the best of them fell to England striker Zamora in the 89th minute.
He controlled the ball and cleverly walked it past Howard but then, with the goal at his mercy, smashed it over the bar when he could have just tapped it in.
Had he done so, victory seemed certain for Fulham but instead the ball went straight down the other end where Saha controlled it expertly on his chest and then stroked it past Schwarzer.
The Fulham fans could not believe it but there was more to come when a ball into the box was headed out as far as Rodwell, who kept his nerve to steer his shot into the back of the net.
Fulham manager Martin Jol said: "It is not about possession or playing better now, it is about chances.
"We really thought we could have a result from today but we didn't. Bobby had the winning goal on his foot in the 89th minute and then we conceded a goal in the 90 minute.
"There's nothing you can say to Bobby. He's sick and we're all sick.They play together and they lost together. We should have won this game and we didn't. Today should have been different."
Everton manager David Moyes said: "If you look back to previous seasons, we've tended to get better as the season's gone on so I'm hoping that will be the case again.
"What we needed to do from this period was find a win from somewhere. We've had a really difficult last three games, with Man City, Liverpool and Chelsea, and we have got Manchester United next week.
"Arguably three of those will realistically be up there at the top of the league and we had Liverpool in there as well."
Sorry, we were unable to load match stats, please try again.