Fulham ended an alarming run of Premier League defeats as Marco Silva claimed his first win against Everton to land a blow on his former employers in their attempt to avoid the drop.
Harrison Reed put the Cottagers ahead midway through the first half but Everton hit back through Dwight McNeil and seemed the likeliest to score again before half-time at Goodison Park.
But the momentum swung back towards Fulham when Harry Wilson put them back ahead just after the break before Dan James sealed a 3-1 victory – snapping a sequence of five-successive losses.
With Fulham in the ascendancy, Everton became increasingly disjointed and were booed off at the full-time whistle after squandering the chance to put daylight between themselves and the Premier League relegation zone as they remain above the bottom three on goal difference alone.
This will be especially frustrating for Sean Dyche, whose side have a much better record at home than away – they have only triumphed once on the road this season – but there are no such worries for his opposite number Silva, who managed Everton from May 2018 to December 2019.
Fulham remain in 10th place but have now passed the 40-point barrier and this win could reignite their hopes of pushing for Europe next season.
Both sides struggled for fluency in a cagey opening but spaces gradually opened up with Demarai Gray and Wilson both having tame efforts saved by Bernd Leno and Jordan Pickford respectively.
Fulham were starting to get on top as Andreas Pereira shot wide before the deadlock was broken in the 22nd minute, with Reed slotting beyond Pickford after Everton were left scrambling when Wilson’s curling effort thudded against a post.
As Everton are the lowest scorers in the division, Reed’s strike might have been decisive but the hosts rallied, thanks in part to transitioning from 4-4-2 to a 4-3-3 formation as McNeil and Gray began to operate higher up the pitch to support Neal Maupay as Alex Iwobi dropped back into midfield.
Maupay could have opened his account but his point-blank header was straight at Leno and then James Tarkowski wastefully blazed the rebound over before Everton got a deserved equaliser after 35 minutes.
A dithering Joao Palhinha was dispossessed in his own half, allowing the hosts to break as James Garner freed McNeil, who turned and unfurled a fine left-footed shot from 20 yards past an outstretched Leno.
With confidence seemingly restored by the leveller, Everton remained on top but they could not find another way through before the break as Maupay was once again denied by Leno after a one-two by McNeil, whose teasing cross from the right evaded everyone in the box and drifted narrowly wide.
Another McNeil cross to the near post after half-time caught Leno off guard, cannoning into the Fulham goalkeeper’s near post, before the visitors restored their lead in the 51st minute.
Kenny Tete’s cross to the back post was cushioned back by Willian into the path of Wilson, who coolly side-footed the ball into the net.
The visitors had a couple of chances to move even further ahead as Pickford saved from Pereira, who then saw an effort deflected over with Everton increasingly penned back into their own half.
Some slack defending led to Fulham’s third in the 68th minute, with a free-kick over the top catching Everton on their heels although James still did brilliantly to bring the ball down before firing across Pickford.
James might have deepened the misery late on as his effort from an acute angle just missed the target, with the Toffees again caught napping, but it mattered little to the result as Fulham coasted to the three points.