Former Fulham striker Louis Saha returned to haunt his former club with a late goal which inspired Everton to a dramatic victory.
The 33-year-old netted from an acute angle for the Toffees before Jack Rodwell scored in stoppage time to ensure they ended their three-match losing steak.
Saha's strike came seconds after Bobby Zamora somehow managed to hit the bar despite rounding Tim Howard.
Everton took a third-minute lead after Royston Drenthe hit an audacious shot from long distance that snuck in the far corner.
It looked liked Fulham had earned a share of the spoils, though, thanks to substitute Bryan Ruiz's exquisite chip three minutes after coming on.
However, Zamora's extraordinary miss allowed Saha and Rodwell to score and secure victory for the Merseysiders.
Fulham manager Martin Jol made seven alterations to the side which lost 1-0 in the Europa League at Wisla Krakow on Thursday.
The visitors made two changes to the side which lost 3-1 at Chelsea last weekend, bringing in Drenthe and Apostolos Vellios.
Despite having lost their last three matches, Everton started the brightest of any visiting side at Craven Cottage this season and took an early lead.
Incisive passing through the middle saw the ball fall to Drenthe, who smashed home from 30 yards.
Fulham looked shellshocked as the Toffees continued to press forward and only John Arne Riise's sprawling block thwarted Sylvain Distin minutes later.
Aside from an overhead kick attempt by Clint Dempsey, the visitors were dominating by the Thames and Rodwell was inches away from doubling their lead with a 12th-minute header.
Riise saw a shot blocked and Steve Sidwell fired wide as Fulham tried to gain some authority, before Riise went close with a left-footed half volley.
Everton were still attacking with intent and, after Drenthe tested Mark Schwarzer, Vellios somehow managed to direct Tony Hibbert's cross over the bar with a wayward header from close range.
The play was flitting from one end to the other and the Cottagers came close to levelling through Danny Murphy, who saw a 20-yard strike palmed onto the post by Howard.
The United States goalkeeper was forced into action seconds later to prevent international team-mate Dempsey with a one-handed save.
Howard then managed to tip over Brede Hangeland's goalbound header on the half-hour mark.
Fulham continued to press as half-time approached but only a dipping effort from Dempsey came anywhere near to equalising.
The west Londoners continued to press after the break and a rare Hangeland burst forward forced Hibbert into a last-ditch challenge, before the Norway international then nodded wide.
Everton boss David Moyes replaced Vellios with former Fulham favourite Saha five minutes into the second half in a bid to reinvigorate his attack.
While the Toffees front line needed sprucing up, Phil Jagielka and Distin were performing with aplomb in defence as the Cottagers struggled to find an opening.
Jol brought on summer signing Ruiz in a bid to find a way through and the Costa Rica international provided a moment of magic to force a 67th-minute equaliser.
Neat interplay saw the ball spread left to Ruiz, who produced a exquisite chip over Howard just three minutes after coming on.
The goal spurred Everton into life and Schwarzer did superbly to tip a Saha strike wide from close range.
Play became stretched as both sides searched for the all-important third goal of the day, with Fulham coming closest as Howard saved a close-range Ruiz effort with his feet three minutes from the end.
Fulham thought they had grabbed a last-minute winner through Zamora after he latched on to Andrew Johnson's pass and rounded Howard, but somehow he managed to hit the bar.
The Cottagers were made to pay for their futility seconds later as Saha broke free and managed to squeeze home under pressure from Aaron Hughes and Schwarzer.
And Everton ensured they would return to Merseyside with all three points in stoppage time as Rodwell smashed home.