Martin Jol's side managed to steal a point late on after previously letting a one-goal lead slip, in a game full of ups and downs
The hosts settled the quicker of the two sides and took the lead courtesy of a fantastic free-kick from Bryan Ruiz, which Tim Howard just failed to claw away, with the the final touch coming from the Everton goalkeeper.
After the break Everton raced out of the traps and scored two goals in a quarter of an hour with Maoruane Fellaini grabbing a marvellous double, but Fulham responded with a late equalizer through Steve Sidwell.
With both sides feeling one another out after a cagey opening, the deadlock was broken in the seventh minute when Ruiz curled a beautiful free-kick into the top left-hand corner from just outside the box, with Howard turning it onto the post before it trickled over the line. The opener was marked down as an own goal.
In a half of few clear-cut chances, though, aside from a Ruiz effort which blazed over the bar, Nikica Jelavic was the main culprit for Everton, wasting two golden opportunities when he looked well placed, first nodding well wide and then clipping an effort over the bar.
The visitors began the second period a lot brighter than the first and they should have levelled the score shortly after the break, with Phil Jagielka's deft header from a Baines free-kick going narrowly wide of the left-hand post.
They didn't have to wait much longer for the equalizer, though, when after a flowing move down the right in the 54th minute, Fellaini latched on to Mirallas' cut-back to smash home unmarked from 10 yards out.
With the game opening up, Berbatov brought a smart stop out from Howard at his near post after beating the offside trap and latching on to Kacaniklic's clever pass in behind, before spinning and working the American stopper.
Everton turned the game on its head in the 71st minute when Fellaini chested down an angled long ball forward from Jagielka, before out-muscling Hughes and driving it home into the bottom right corner in an exceptional piece of individual brilliance.
By this point, Fulham threw on Mladen Petric to try and get something from the game, but it was nearly caught out again on the break when Fellaini struck the post before Steven Naismith, on as a substitute, saw his weak effort cleared off the line from Baird.
With the clock ticking down, Fellaini forced a fine save from Schwarzer with a well-struck volley, but Fulham had the final say, with Sidewell tapping home at the back post after a dangerous low cross in from the right in the final minute of the game.