An error by Edouard Mendy led to Chelsea’s first defeat in 18 matches.
The keeper clumsily bundled Dominic Calvert-Lewin over in the box and Gylfi Sigurdsson tucked away the resulting penalty.
Chelsea almost equalised before the interval when Reece James’ thumping strike was pushed on to the post by Jordan Pickford.
They thought they had conceded another penalty just after the hour mark when Calvert-Lewin was barged over again, this time by Ben Chilwell.
But VAR showed that Calvert-Lewin was in an offside position when put through by Alex Iwobi’s pass.
The woodwork came to Everton’s rescue again with nine minutes remaining when Mason Mount smashed a free-kick against the post.
And Olivier Giroud missed a decent chance to level when he fired over after being found by Timo Werner’s low cross.
Chelsea: Mendy, James, Silva, Zouma, Chilwell, Kovacic (Gilmour 82), Kante, Mount, Havertz (Abraham 68), Werner, Giroud.
Subs not used: Kepa, Rudiger, Jorginho, Azpilicueta, Anjorin.