Everton missed the chance to return to the top of the Premier League as Callum Wilson scored twice to give Newcastle a first win in three matches.
Former Bournemouth forward Wilson opened the scoring – converting a penalty he had won after being fouled by Andre Gomes – and then tapped in a second from Ryan Fraser’s looping cross.
The result means Carlo Ancelotti’s side remain second, three points behind Liverpool, while the Magpies move up to 10th.
After a largely uneventful first half, the game sparked into life in the second period.
And Newcastle, who had taken a point from their two previous matches, had Wilson to thank for their victory.
Steve Bruce’s side could have added to their tally but Sean Longstaff’s powerful close-range effort was brilliantly saved by Robin Olsen, starting in goal for Everton in place of England goalkeeper Jordan Pickford.
Dominic Calvert-Lewin’s late goal was not enough to prevent Ancelotti from losing consecutive league games for the first time since September 2014, when he was in charge of Real Madrid.