Chelsea’s defensive shortcomings were evident again as they were beaten at Goodison Park.
Richarlison’s winner a minute into the second half came after a mistake by Cesar Azpilicueta.
The result is a huge boost for Everton’s former Chelsea boss Frank Lampard’s hopes of keeping the Merseyside club in the Premier League.
Richarlison slotted past keeper Edouard Mendy after robbing Azpilicueta near the edge of the penalty area.
And Vitaliy Mykolenko missed a great chance to double Everton’s lead when he sliced wide of the near post with just Mendy to beat.
Chelsea, still yet to secure a Champions League place, struggled to create chances, although they would have equalised but for an absolutely brilliant save by Jordan Pickford just before the hour mark.
After Mason Mount’s shot had bounced off both posts, the England keeper somehow got off the ground quickly enough to superbly claw away Azpilicueta’s follow-up.
Pickford came to his team’s rescue from the resulting corner as well, blocking Antonio Rudiger’s effort at point-blank range, and again in stoppage time when he denied Mateo Kovacic.
Chelsea: Mendy, Azpilicueta (Ziyech 68), Rudiger, Silva, James, Jorginho (Kovacic 45), Loftus-Cheek, Alonso, Mount, Havertz, Werner (Pulisic 68).
Subs not used: Kepa, Sarr, Chalobah, Saul, Kenedy, Lukaku.