A last-minute equaliser by Steve Sidwell gave Fulham a 2-2 draw at home to Everton in a match that the visiting side should have won.
Everton somehow found themselves 1-0 down at half-time after a Bryan Ruiz free-kick went in off Tim Howard, but they deservedly drew level when the superb Marouane Fellaini finished sweetly from a Kevin Mirallas cross.
Both sides went for the win in the last half hour, with Everton creating the better chances and going in front when Fellaini showed his power and skill to take down a long ball and fire past Mark Schwarzer with 18 minutes left.
They could have added more goals, with Schwarzer keeping out Fellaini and Steven Naismith efforts, but in the 90th minute substitute Sidwell finished from close range after escaping the attentions of Seamus Coleman.
The result means Everton have drawn their last four Premier League matches, three of them 2-2, but they still move into the top four on goal difference after Tottenham lost at home to Wigan.
Fulham, meanwhile, stay seventh, behind Arsenal on goal difference.
Everton dominated both in terms of possession and chances, but wasteful finishing and a stroke of bad luck saw them enter half-time a goal down.
The hosts took the lead when, after a superb piece of skill from Dimitar Berbatov drew a Phil Neville foul, Ruiz curled a beautiful free-kick off the inside of the post, the ball ricocheting in off Howard.
Everton were undeterred, continuing to bombard Fulham’s goal. It was to little avail as – despite some excellent wide play by Coleman, Kevin Mirallas and Leighton Baines – Nikica Jelavic and Fellaini appeared to have forgotten how to finish.
Fulham had defended poorly in their 3-3 draw at Reading and they seemed to have developed an almost pathological determination to deny Everton at the expense of creating anything themselves.
They probably should have continued the policy as, having started the second half with notably more attacking intent, Everton equalised from a counter-attack of their own.
More fantastic wingplay from Coleman and Mirallas created the goal, the Irishman finding the Belgian wide right, his low ball stroked into the top right by the arriving Fellaini.
It was anyone’s game now, Howard making a fine save from Berbatov while Schwarzer got a vital touch on another Mirallas cross both Steven Pienaar and Fellaini were set to convert.
Sascha Riether was having a fine game at right-back for the hosts, making a brilliant last-ditch challenge on Jelavic, having done likewise on Fellaini in the first half.
Everton may have been ripping Fulham apart down the right wing but it was a route-one ball from defence that got them the lead they deserved.
Phil Jagielka launched it upfield and Fellaini did brilliantly to take the ball down, shrug off Aaron Hughes and stroke a crisp low finish into the bottom left.
Fulham introduced Mladen Petric and used Brede Hangeland as an auxiliary forward as they hunted an equaliser.
Hangeland went close with a header, but the hosts were leaving holes at the back.
Everton were denied a third goal by Schwarzer, who kept out a spectacular Fellaini volley in style before saving from a weak Naismith effort.
The Toffees even hit the post and had the ball cleared off the line in the same move, as Fellaini’s effort beat Schwarzer via a wicked Hangeland deflection, with Chris Baird blocking Naismith’s follow up.
It seemed inevitable that Fulham would equalise, and Riether was involved to cap off a good performance by the German right-back. He exchanged passes with Ashkan Degajah before driving a superb low cross into the six-yard box, Berbatov missing initially but Sidwell getting goal-side of Coleman to scramble the ball home.
It was a shame for the otherwise excellent Coleman, and a shame for Everton, who could have pulled two points clear of Spurs in the race for a Champions League place.
MAN OF THE MATCH
Marouane Fellaini – Everton: Had a mediocre first half but was at his unplayable best in the second, scoring two superb goals and denied a hat-trick only by the woodwork and Mark Schwarzer. One of the best players in the league.
FULHAM: Schwarzer 7, Riether 8, Hughes 6, Hangeland 6, Riise 5, Duff 6, Baird 6, Diarra 6, Kacaniklic 7, Ruiz 7, Berbatov 6; Subs: Sidwell 7, Dejagah 7, Petric 6
EVERTON: Howard 8, Coleman 6, Baines 7, Jagielka 7, Heitinga 6, Neville 7, Pienaar 7, Mirallas 8, Fellaini 8, Osman 7, Jelavic 5; Subs: Distin N/A, Naismith 5