Louis Saha hit a stunning double to sink Barclays Premier League leaders Chelsea 2-1.
The Frenchman first exposed Chelsea's weakness at set-pieces with a headed equaliser and then fired a brilliant 75th-minute winner at Goodison Park.
Chelsea had shaded the early stages and taken the lead through Florent Malouda but Saha, who also missed a penalty, secured Everton's first victory over the Londoners since 2000.
Chelsea broke through after 17 minutes from a route-one ball as Peter Cech's long clearance was headed on by Drogba and Malouda brushed off the challenge of Phil Neville to drill a left-footed shot low past Tim Howard.
But Everton pulled level in the 33rd minute when Landon Donovan's cross dropped over Lampard and Saha rushed in to power a header before the Frenchman missed a penalty on the stroke of half-time.
Early second-half pressure finally paid off as Everton deservedly went ahead through Saha's fine finish after 75 minutes and they held on without problem.