Match ends, Arsenal 0, Everton 1.
Everton boss Carlo Ancelotti said the Toffees "are back" after a howler from Arsenal's Bernd Leno gifted his side a crucial win in their bid for a Champions League place.
The Merseysiders had failed to win in six games in all competitions but moved to within three points of the top four with a victory which was achieved amid a backdrop of protest.
Over 1,000 Arsenal supporters gathered outside Emirates Stadium to show their anger about owner Stan Kroenke's role in the failed European Super League.
The goal came when Everton forward Richarlison tried to roll a pass across the six-yard box. Leno should have scooped it up, but the ball slipped through the Arsenal keeper's hands, hitting his leg on the way in.
That was a rare moment of goalmouth action on the night as Everton won at Arsenal in the league for the first time since 1996.
Gylfi Sigurdsson came closest before that when his 30-yard free-kick hit the bar.
"It was really important to stay attached to the top of the table," Ancelotti told BBC Sport. "The performance was good. It's all good news tonight and this gives us confidence for the next games.
"Finally I can say we are back."
Arsenal were awarded a penalty in the second half after Richarlison nicked Dani Ceballos - but it was overturned by the video assistant referee for a Nicolas Pepe offside in the build-up.
Gunners boss Mikel Arteta said: "We were the better team but there are certain decisions that we can't control.
"To disallow a penalty 15 seconds before - [we had] eight or nine touches [after Pepe was offside] - I saw it 10 times and I don't get it. It can be taken the way they want. Zero control. Somebody has to explain that."
Gabriel Martinelli almost saved Arsenal in injury time but Jordan Pickford kept out his shot.
Leno also came up for a late corner but could not make amends for his costly error.
- Who can qualify for Europe this season?
- Football Daily podcast: Super League sanctions and Mason's Wembley dream
Can this bit of luck boost Everton's season?
Everton's win against the team just below them in the table comes at an absolutely key time.
The Toffees had failed to win in their past six games in all competitions, removing any real room for error as they push for a Champions League place.
This win keeps them eighth in the league but they are now within three points of Chelsea and West Ham, who are fourth and fifth respectively and play each other on Saturday.
They only had one chance on target at Emirates Stadium - although their goal did not come from it.
Dominic Calvert-Lewin went close on his return from injury in the second minute but headed wide.
Richarlison forced a low save from Leno, with Calvert-Lewin inches away from getting to the rebound.
Sigurdsson's fantastic free-kick off the top of the bar looked like it was going to be their best effort until Richarlison's low ball somehow slipped through Leno's grasp. A VAR check confirmed the Brazilian - who got past Granit Xhaka easily in the build-up - was onside.
Arsenal distracted by protests or Europe?
Arsenal's chances of qualifying for next season's Champions League now rely on winning this year's Europa League - they sit nine points behind the European places in the Premier League, while the first leg of their Europa League semi-final is at Villarreal on Thursday.
They were without forwards Alexandre Lacazette and Pierre-Emerick Aubameyang because of injury and illness on Friday night and had to arrive at the ground early to avoid the protests.
Arteta said: "We need to go through the disappointment and focus our energy. The semi-final is more than crucial for us. I don't want to use any excuses, I understand the protests.
"On the pitch performance-wise we were the better team, we controlled the game and we had some opportunities and openings."
They played some nice football against Everton but did not fashion many clear-cut chances.
Bukayo Saka shot straight at Jordan Pickford and the Everton keeper kept out Dani Ceballos' 20-yard drive.
They thought they had a penalty when Ceballos was felled but Pepe's arm was offside in the build-up so it was overturned.
Even after Leno's moment to forget they had a chance to rescue a late point - as they had done against Fulham in their previous game - but substitute Martinelli was denied by Pickford.
Match stats - yet another Arsenal blank
- Arsenal suffered their first Premier League defeat at home to Everton since January 1996 (2-1), ending a run of 24 such games in the competition.
- Everton completed their first league double over Arsenal since the 1985-86 season, having won 2-1 at Goodison Park back in December.
- The Gunners have lost seven games at the Emirates in the Premier League this season; their most home defeats in a league campaign since 1992-93 (also seven).
- Only Manchester City (12) have won more away games than Everton (10) in the Premier League this season, while this is the first time since 1986-87 that the Toffees have won 10 away games in a single league campaign.
- This was the 200th top-flight meeting between Arsenal and Everton, becoming just the third fixture in top-flight history to have been played on 200 occasions (also Aston Villa v Everton and Liverpool v Everton, both 204).
- Arsenal have failed to score in eight Premier League games at the Emirates Stadium this season, twice as many as in the previous four campaigns combined.
- Arsenal conceded an own goal in both meetings with Everton in the Premier League this season - the third time they have done so home and away against an opponent in the same campaign (also v Liverpool in 2011-12 and Chelsea in 2008-09).
Arsenal visit Villarreal on Thursday in the Europa League semi-final first leg and go to Newcastle in the Premier League on Sunday. Everton host Aston Villa the previous day.
- 21ChambersSubstituted forWillianat 83'minutes
- 18ParteyBooked at 38mins
- 32Smith Rowe
- 19PépéSubstituted forØdegaardat 74'minutes
- 30NketiahSubstituted forMartinelliat 74'minutes
- 17Cédric Soares
- 4HolgateBooked at 62mins
- 6AllanBooked at 55mins
- 21André GomesSubstituted forDelphat 66'minutesBooked at 68mins
- 7RicharlisonSubstituted forMinaat 89'minutes
- 19RodríguezSubstituted forDaviesat 86'minutes
- 10G Sigurdsson
- Jonathan Moss
- Shots on Target
Second Half ends, Arsenal 0, Everton 1.
Foul by Bernd Leno (Arsenal).
Allan (Everton) wins a free kick in the defensive half.
Corner, Arsenal. Conceded by Allan.
Attempt blocked. Dani Ceballos (Arsenal) left footed shot from a difficult angle on the left is blocked.
Attempt saved. Gabriel Martinelli (Arsenal) right footed shot from a difficult angle on the left is saved in the centre of the goal.
Foul by Pablo Marí (Arsenal).
Séamus Coleman (Everton) wins a free kick in the defensive half.
Substitution, Everton. Yerry Mina replaces Richarlison.
Substitution, Everton. Tom Davies replaces James Rodríguez.
Substitution, Arsenal. Willian replaces Calum Chambers.
Pablo Marí (Arsenal) wins a free kick in the defensive half.
Foul by Dominic Calvert-Lewin (Everton).
Attempt missed. Thomas Partey (Arsenal) right footed shot from outside the box is high and wide to the right. Assisted by Dani Ceballos with a headed pass.
VAR Decision: Goal Everton - Arsenal 0-1 Everton (Richarlison).
Own Goal by Bernd Leno, Arsenal. Arsenal 0, Everton 1.
Substitution, Arsenal. Gabriel Martinelli replaces Eddie Nketiah.
Substitution, Arsenal. Martin Ødegaard replaces Nicolas Pépé.
Foul by Thomas Partey (Arsenal).
- A football club brought back from the brink: The rocky story of Derry City is streaming now
- The Murder That Changed a Nation: Stephen Lawrence's story and the lessons still being learnt