This must have been torture for Marco Silva. The passionate Portuguese, still smarting from his sacking at Goodison Park after a dreadful Merseyside defeat in 2019, had to watch from the stands as Everton ended Fulham’s faint hopes of qualifying for Europe with a stirring second half comeback. Raul Jimenez headed the Whites in front after superb play from Emile Smith Rowe, but Silva’s side paid the penalty for failing to take further chances when Vitali Mylokeno’s deflected drive levelled matters in first half stoppage time.

David Moyes continued his outstanding record against Fulham as the Toffees ruthlessly exploited Fulham’s fragility at set plays to go ahead against the balance of play. Substitute Dwight McNeil headed in a corner – with the goal awarded after a long VAR check for a foul and then offside. Beto added a third 22 seconds after the restart when the Portuguese striker’s shot squirmed under Bernd Leno after the impressive Carlos Alcaraz darted dangerously infield.

Fulham’s foothold in a contest they had controlled prior to half time disintegrated with the withdrawal of Smith Rowe, who had troubled Everton from the outset after orchestrating the Cottagers’ attacks from the number ten position. The ex-Arsenal midfielder was one of two changes from the side that lost at Aston Villa last weekend – with Andreas Pereira also recalled to the starting line-up in place of injured pair Antonee Robinson and Sasa Lukic.

The hosts made a bright start with Harry Wilson having a shot blocked and then firing straight at Jordan Pickford from the right edge of the area. Everton’s first foray saw Jarrad Branthwaite’s shot stopped at source, but the visiting defence was the busier with England number one Pickford having to field a low drive from Alex Iwobi. But it was Smith Rowe who posed the clearest danger to Everton’s hopes of ending a poor recent run, dropping into pockets of space in front of Moyes’ back four.

The England international darted onto a pass from Ryan Sessegnon and a fine first touch saw him gallop away from James Garner before crossing for Jimenez to bury a trademark header. The Mexican’s thirteenth goal of the season prompted a wave of further Fulham attacks but the hosts couldn’t score the crucial second. Wilson curled a shot wide of the far post from Iwobi’s pass before Jimenez seized on a poor Mykolenko pass to drive deep into Everton territory and feed Iwobi, who came agonisingly close to scoring against his former employers for the second time this season.

Pickford then produced the save of the match to tip a low Wilson effort past the post on the stroke of half time and Everton clearly gained confidence from their goalkeeper’s heroics. Alcaraz almost drew them level with a low shot that Leno saved superbly with his legs but, from a long throw shortly afterwards, the German punched only as far as Mykolenko, whose hopeful shot took a wicked deflection off Pereira and ended up in the net.

The Toffees were far more purposeful after the break, but Fulham had the first chance after the restart as Pickford palmed away a Ryan Sessegnon strike. England’s number one bravely risked injury to backpedal and push behind Wilson’s well-weighted chip as Fulham looked to be in the ascendancy, but Moyes’ introduction of McNeil turned the game in Everton’s favour. The former Burnley winger showed Pereira and co how to take a corner with his deep delivery allowing Keane to head the visitors ahead before Leno’s error put Moyes’ men on easy street.

Martial Godo and Josh King came off the bench but the game was well beyond Fulham at this point. Sessegnon squandered a good opening at the far post before referee Darren England refused to overturn his non-award of a penalty for Mykolenko’s handling of Adama Traore’s cross deep into added time – despite being sent to the pitchside monitor by the VAR. It wouldn’t have mattered as Fulham’s once promising season has well and truly petered out.

FULHAM (4-2-3-1): Leno; Tete, R. Sessegnon (Godo 83), Andersen, Bassey; Berge (King 83), Pereira (Cairney 75); Wilson (Willian 75), Iwobi, Smith Rowe (Traore 63); Jimenez. Subs (not used): Benda, Diop, Cuenca, Vinicius.

BOOKED: Berge.

GOAL: Jimenez (17).

EVERTON (4-2-3-1): Pickford; A. Young, Mykolenko, Keane, Branthwaite; Gueye (Coleman 90+1), Garner; Harrison (McNeil 61), Alcaraz (Iroegbunam 84), Doucoure (Ndiaye 61); Beto (Calvert-Lewin 90+1). Subs (not used): Virginia, Patterson, Chermiti, Broja.

GOALS: Mykolenko (45+3), Keane (70), Beto (73).

REFEREE: Darren England (Yorkshire).

ATTENDANCE: 27,653.