Everton moved back into the top four, but manager David Moyes was left to rue a host of wasted opportunities. The hosts salvaged an unlikely point thanks to Steve Sidwell's last-minute effort, condemning the Toffees to a fourth consecutive draw.
By the time Sidwell pounced to convert Sascha Riether's low cross, Everton should have had the game sewn up. The visitors dominated, recovering from Tim Howard's early own goal to take a deserved lead via a pair of second-half Marouane Fellaini strikes.
Chance after chance came their way, but Everton were never able to finish off their opponents.
"I can't believe that we've only got a draw out of that, it's quite incredible," said Moyes. "We were incredibly wasteful in front of goal. We were terrific at times, but we couldn't get the goals, and I'm frustrated because if we want to try and hang on to the boys at the top we need to try and win the games when they come along."
Late goals have been a regular occurrence in the Cottagers' fixtures this season. Often, though, it is Martin Jol's side who have been conceding them, so it made a nice change for Jol to be able to celebrate a late strike that extended his team's unbeaten run to four games, although he was mindful of where they could have been had they not been so sloppy.
"Remember the goal against Man City after 87 minutes, then away against Southampton and last week against Reading we lost two points. We were very close to being in the top four."
It was perhaps little surprise that Fulham took the lead - it is now five league games in a row that Moyes' men have conceded the opening goal. Their powers of recovery have meant they have lost none of those, however.
There was a touch of fortune about Fulham's opener, as Tim Howard failed to get enough on Bryan Ruiz's free-kick, palming the ball against the post, only for it to rebound off him into the net.
The goal was Fulham's 500th in the Premier League, but from then on it was all Everton. Mark Schwarzer saved from Fellaini, while Nikica Jelavic, who Moyes described as "off colour", bounced a header over from close range.
Phil Jagielka hit a stinging drive inches wide, before Jelavic lifted the ball over the bar. Everton did finally breach the hosts' goal ten minutes after half-time, as Fellaini put away Kevin Mirallas's cutback.
Fellaini got his second when he outmuscled Aaron Hughes to bring Jagielka's long ball under control, before lashing a right-foot shot into the bottom corner.
He then twice went close to completing his hat-trick, first being denied by the post, before Schwarzer produced a fine save to keep out his stunning volley.
Steven Naismith should have put the game to bed, but he couldn't beat Schwarzer. The saves proved to be vital, as Sidwell stole in at the death to earn a point.
"We never gave up," said Jol.