Match ends, Newcastle United 3, Everton 2.
Newcastle stormed back from two goals down at half-time to beat Everton in a captivating match, leaving Toffees boss Marco Silva angry Ayoze Perez's winner was not disallowed for offside.
Perez capped a stellar performance by whipping the ball past Jordan Pickford in the 84th minute after the Everton defence failed to react to Isaac Hayden's lofted pass back into the box.
The Spaniard had retreated from a clear offside position but only touched the ball after Salomon Rondon - although replays appeared to show Rondon was slightly offside when the ball was played in.
"When they scored the third goal it was a big mistake by the assistant - it was a clear offside," said Silva, who confronted referee Lee Mason on the pitch after the game.
"If you see the image it's not just one or two players in offside positions, there were five Newcastle players in the same line in offside positions.
"If 2-2 for us at that moment was a big frustration, imagine when they scored the third goal in a clear offside position?"
Perez had levelled three minutes earlier when Pickford spilled Miguel Almiron's stinging drive into his path, while he also set up Rondon's fine volley to get the hosts back into the game.
Until then, Rafael Benitez's side had felt aggrieved at Mason's decision not to send Pickford off for a foul on Rondon, with the England goalkeeper saving Matt Ritchie's poor subsequent penalty.
Moments after that save, Richarlison tapped in his side's second after Martin Dubravka parried Andres Gomes' low cross straight to the Everton winger.
Dominic Calvert-Lewin got the opener on 18 minutes with a fine glancing header from Lucas Digne's superb cross.
But the Toffees faded badly in the face of Newcastle's second-half onslaught and are now only three points in front of Benitez's side, with Silva admitting his side "have to look at ourselves".
"We lost because it was our fault," he said.
"Because I'm sure if we had kept doing what we did in the first half and we did what we had to do in the first 15 minutes of the second half, we would have killed the match with a third goal."
Perez inspires stirring comeback
While unlucky and understandably frustrated to be 2-0 down at the interval, Newcastle were sloppy in the first half, not least when Ritchie stuttered in his run-up and hit a tame penalty down the middle that Pickford saved with his legs.
Benitez replaced captain Jamaal Lascelles, who had a knee injury, with Paul Dummett at half-time and later changed the shape of his side - moving Dummett to left back and pushing Ritchie up from there to right midfield, which allowed Newcastle to be more direct against a shaky Everton defence.
That defensive frailty was exposed on 65 minutes when Hayden played a hopeful pass up to Perez, who had only Rondon in support against four Everton defenders.
But Perez won the header back to Rondon, spun and received the return pass before deftly chipping to the Venezuela striker to volley beyond Pickford from 12 yards.
"The first goal was a great goal - I was joking that if Lionel Messi had done what Ayo did and Alan Shearer finished like Rondon, everybody would have been talking for a month about that," said Benitez.
Dummett looped a header over when Rondon was better placed behind him but Newcastle kept coming and drew level on 81 minutes as Almiron struck from 30 yards and Perez slotted in the rebound after Pickford failed to push it wide.
Frustration had given way to fervent urgency and Everton wilted, their defence caught static as Rondon brought down Hayden's lofted pass and Perez stabbed in the winner.
Now it was Everton's turn to feel aggrieved, but the visitors will still be alarmed at the manner of their collapse.
Pickford's dreadful day
Shortly after the break, former Sunderland player Pickford smiled and stuck his tongue out at the Newcastle fans, who booed his every touch, but it ended up a miserable, chastening day for the England keeper.
He should have been dismissed after half an hour when he spilled Ritchie's cross into Rondon's path and took a step to his left to tackle the Newcastle striker.
Mason likely decided that Pickford's foul in denying a goalscoring opportunity was accidental or he was trying to play the ball, which, since 2016, does not result in a red card. But Pickford looked to have deliberately impeded Rondon and it was strange Mason did not at least book him.
While Pickford saved the penalty and also denied Perez and Dummett with fine stops, those moments were overshadowed by a volatile and nervy showing.
He looked uncertain when coming for crosses, often punching instead of catching, was beaten by Rondon to a ball over the top that the striker poked just wide and could not handle Almiron's strike to gift Perez.
With the England squad named on Wednesday, this was a performance that may alarm manager Gareth Southgate when he considers who is his first-choice keeper.
Man of the match - Ayoze Perez (Newcastle)
'We believed we could do it' - reaction
Newcastle manager Rafael Benitez, speaking to Match of the Day: "We didn't deserve to be losing 2-0 but you have to react and at half-time we talked about staying calm - it was really difficult to keep the players calm but they understood that that was the way.
"To concede one minute after missing a penalty is the worst nightmare for any manager but we reacted well. The players were pushing and pushing and they had the belief and confidence we could do it.
"We have more confidence but we have to keep winning."
Everton manager Marco Silva, speaking to Match of the Day: "We didn't expect what happened, but it's football.
"Even in the first 15 to 20 minutes in the second half we had counter-attacks - we had to kill the game in that moment.
"I cannot understand - five Newcastle players were in the same line and Rondon was offside."
'Pickford got wrapped up in the emotion' - analysis
Former Arsenal striker Ian Wright on BBC MOTD:
"Jordan Pickford had an erratic game. He got too wrapped up in the emotion of Sunderland versus Newcastle with the home crowd.
"How he didn't get sent off for the foul on Salomon Rondon is terrible. It was a deliberate attempt to take the man out and there is absolutely no double jeopardy there.
"He was gesturing to the Newcastle fans behind the goal but he should've been focusing on the game. He parries the ball back into the danger area far too often and it led to Newcastle's equaliser."
Newcastle's biggest league comeback for 16 years - match stats
- Newcastle United won a Premier League game from two goals down for the first time since October 2003 against Fulham under Sir Bobby Robson.
- Everton lost an away Premier League match having led by two goals for only the second time, also doing so in September 2000 away at Tottenham.
- Everton goalkeeper Jordan Pickford has saved three of the last four penalties he has faced in the Premier League.
- Newcastle United have failed to score with three of their last four Premier League penalties, with three different players seeing their penalties saved (Joselu, Kenedy and Matt Ritchie).
- Salomon Rondon has been involved in 13 Premier League goals for Newcastle United this season - five more than any other player (eight goals, five assists).
Newcastle are at Bournemouth in the Premier League on Saturday, 16 March at 15:00 GMT.
Everton host Chelsea at 16:30 on Sunday, 17 March.
- 5SchärBooked at 70mins
- 6LascellesBooked at 42minsSubstituted forDummettat 45'minutes
- 4Ki Sung-yuengSubstituted forShelveyat 79'minutesBooked at 89mins
- 11RitchieSubstituted forKenedyat 73'minutes
- 43KennyBooked at 53minsSubstituted forWalcottat 87'minutes
- 8André Gomes
- 30RicharlisonSubstituted forMinaat 75'minutes
- 10G Sigurdsson
- 20BernardSubstituted forLookmanat 82'minutes
- Lee Mason
- Shots on Target
Second Half ends, Newcastle United 3, Everton 2.
Idrissa Gueye (Everton) wins a free kick in the defensive half.
Foul by Ayoze Pérez (Newcastle United).
Jonjo Shelvey (Newcastle United) is shown the yellow card.
Corner, Newcastle United. Conceded by Kurt Zouma.
Substitution, Everton. Theo Walcott replaces Jonjoe Kenny.
Offside, Newcastle United. DeAndre Yedlin tries a through ball, but Ayoze Pérez is caught offside.
Attempt blocked. DeAndre Yedlin (Newcastle United) right footed shot from outside the box is blocked. Assisted by Jonjo Shelvey.
Corner, Newcastle United. Conceded by Idrissa Gueye.
Hand ball by Michael Keane (Everton).
Jonjoe Kenny (Everton) wins a free kick on the right wing.
Foul by Jonjo Shelvey (Newcastle United).
Goal! Newcastle United 3, Everton 2. Ayoze Pérez (Newcastle United) left footed shot from the centre of the box to the top right corner. Assisted by Salomón Rondón following a corner.
Attempt missed. DeAndre Yedlin (Newcastle United) right footed shot from outside the box misses to the left following a corner.
Corner, Newcastle United. Conceded by Jordan Pickford.
Attempt saved. Paul Dummett (Newcastle United) left footed shot from the centre of the box is saved in the top left corner. Assisted by Florian Lejeune with a headed pass.
Corner, Newcastle United. Conceded by Kurt Zouma.
Attempt missed. Salomón Rondón (Newcastle United) left footed shot from the left side of the box is close, but misses to the left. Assisted by Jonjo Shelvey.
Substitution, Everton. Ademola Lookman replaces Bernard.