First-half goals by Dominic Calvert-Lewin and Richarlison had put Everton in control of the match before Rafa Benitez’s team fought back well after the break, as Salomon Rondon’s effort and an Ayoze Perez brace ensured they picked up the three points.
Newcastle started the match well and Perez looped an early header over the bar, but the home fans were silenced in the 17th minute when Calvert-Lewin rose above Jamaal Lascelles to head Lucas Digne’s excellent cross past Martin Dubravka.
The home team had a great chance to equalise just before the half-hour mark when Jordan Pickford spilled Matt Ritchie’s deep cross and then compounded his mistake by bringing Rondon down.
Inexplicably, the England goalkeeper was not even shown a yellow card and he then kept Ritchie’s poor penalty out with his legs.
Everton doubled their lead almost immediately, Richarlison tapping the rebound home after Dubravka had made a hash of dealing with Andre Gomes’ cross. Five minutes before half-time Pickford made an outstanding save to keep Perez’s left-footed drive out.
Newcastle poured forward at the start of the second period, as they tried to get back into the match, and Rondon’s effort beat Pickford, only for the ball to roll just wide of the goal.
The Venezuela international did halve the deficit in the 64th minute when he volleyed past Pickford after Perez had chipped the ball to him.
Everton responded well and Calvert-Lewin and Richarlison went close to making it 3-1 before the Magpies grabbed an equaliser in the 81st minute, Perez slotting the ball home after Pickford had only managed to parry Miguel Almiron’s long-range shot.
Three minutes later the comeback was complete when Rondon set up Perez to lash home the winner and make it five home victories in a row for Newcastle.