Arsenal had two players sent off as they threw away a lead and lost to Wolves – who won for the first time in nine Premier League games.
The Gunners, who had earlier hit the woodwork twice and had a goal disallowed, went ahead when Nicolas Pepe held off two Wolves challenges and curled a fine finish into the net.
But Arsenal were reduced to 10 men when defender David Luiz brought down Willian Jose, with Ruben Neves equalising with the resulting penalty in first-half injury time.
Joao Moutinho scored with a brilliant strike from 30 yards out to put the hosts ahead soon after the restart.
However, the Gunners were then reduced to nine men as goalkeeper Bernd Leno handled the ball outside of his penalty area after racing out trying to deny Adama Traore.
This was Wolves’ first league victory since a 2-1 victory at Molineux against Chelsea on 15 December, although they had also won two FA Cup ties – against Crystal Palace and National League North side Chorley – since then.
Wolves remain in 14th and Arsenal – who would have gone sixth with victory – stay 10th, eight points behind fourth-placed Leicester City in the final Champions League qualification spot.
Luiz red card changes the game
The turning point came in first-half injury time when Arsenal were leading 1-0 and were dominant.
Daniel Podence played the ball through to Jose and the Brazilian, on his home debut, had his heel clipped from behind by compatriot Luiz.
Referee Craig Pawson decided that Luiz had made no attempt to play the ball and sent the centre-back off. It was Luiz’s third red card for Arsenal after also being dismissed in the 2-2 draw at Chelsea in January 2020 and then again in the 3-0 loss to Manchester City in June.
After the match, both managers had contrasting opinions with Wolves boss Nuno Espirito Santo saying Pawson had “no other option” but to award the penalty and send off Luiz.
However, Gunners manager Mikel Arteta said he “cannot tell you where the contact is” and suggested the club may appeal Luiz’s red card.
Wolves, whose main threat had been restricted to set-pieces and long-range efforts, equalised with Neves’ penalty, which he fired into the top corner.
Gunners boss Mikel Arteta made a defensive substitution at the break as centre-back Gabriel came on for forward Alexandre Lacazette, but it only took the hosts four minutes of the second half to go ahead, through Moutinho’s superb strike.
The visitors brought on Pierre-Emerick Aubameyang for goalscorer Pepe in the 61st minute in an attempt to rescue something from the game.
But Leno made a shocking decision in the 72nd minute as he sprinted out of his box, trying to reach the ball before the pacey Traore, but the goalkeeper misjudged the bounce, handled the ball and was dismissed.
With Mat Ryan, who signed from Brighton last month, injured, third-choice goalkeeper Runar Runarsson was given a Premier League debut.
The 25-year-old Iceland international, signed for £1.8m from Dijon in September, did well to deny Pedro Neto and substitute Vitinha as Wolves looked to finish the game off.
That left Arsenal largely playing with two banks of four, in defence and midfield, with long spells of no-one playing up front before they could regain possession.
Aubameyang and Hector Bellerin had shots from the edge of the penalty area blocked, but the Gunners could not force an unlikely equaliser.
Arsenal’s first-half display a plus for Arteta
When these two sides met on 29 November at Emirates Stadium, Wolves won 2-1 and Arteta was facing questions over whether he would lose his job with the Gunners down in 14th.
Arsenal had gone into Tuesday’s game on an unbeaten run of seven Premier League matches and the Spaniard will surely be disappointed they did not extend that sequence, because they could have taken the game beyond Wolves in the first half.
The Gunners nearly went ahead inside the opening 40 seconds when Saka hit the post after a fine pass from the excellent Thomas Partey.
Saka then had an effort saved by Rui Patricio before the England midfielder did put the ball in the net, but it was ruled out by the video assistant referee because Lacazette was offside in the build-up.
Pepe was denied when his strike was superbly pushed on to the crossbar by Patricio, but the Gunners’ record signing did get on the scoresheet when he did superbly to nutmeg two Wolves defenders before curling the ball into the far corner.
At that point, it looked like Arsenal would run away with the match, but the penalty and first red card on the stroke of half-time changed everything, with the Gunners unable to create any real opportunities in the second half.
‘I cannot tell you where the contact is’ – what they said
Wolves boss Nuno Espirito Santo said: “Everything changes with the penalty, the dynamic of the game changes there. I think the referee doesn’t have any other option in both situations [the penalty and the red card for Luiz].
“The [Moutinho] goal is amazing. He is such a talented player and he deserves this moment. It’s a very welcome win. It means a lot, we have been in a tough moment.
“We have done many beautiful things in past seasons and we want to emulate them again. The standards are very high and we have to chase them.
“We cannot allow ourselves to ever put our heads down. I will not allow our players to stop believing in themselves.”
Arsenal manager Arteta told Match of the Day: “The team was really on top of the game, we should have been three- or four-nil up and in that action [the Luiz red] the game changed completely.
“I’ve seen it 10 times in different angles and I cannot tell you where the contact is. If they have another 50 different angles to watch it, maybe I will be surprised. I looked at seven different angles and I cannot see any contact there.
“The team kept trying, kept playing, kept believing. At half-time, the boys were so animated because they believed they could still win the game. Obviously it was an incredible goal from long range, before that they didn’t have any chances. But still we lost and we have to react.
“We hit the post, hit the bar, the keeper made a couple of great saves. We played exceptionally well, scored one goal and should have scored three or four and had more of a gap, but obviously you concede two red cards in the Premier League. I don’t have any [complaints about] the second red card.
“The team is encouraging me every day to believe in them and to give me a positive feeling all the time.”
Wolves do the double over Arsenal – the stats
- Wolves completed their first league double over Arsenal since 1978-79.
- Since Arteta’s first game in charge of Arsenal on 26 December 2019, the Gunners have been shown nine Premier League red cards, six more than any other side.
- Only Sheffield United and West Brom (16 each) have conceded the first goal in more Premier League games this season than Wolves (15).
- Arsenal’s Pepe has scored three goals in his past four starts in the league, as many as in his previous 16.
- Pepe has scored in three consecutive away league matches for the first time since January 2019, when he scored in four in a row on the road for Lille.
- Since making his Premier League debut for Arsenal in August 2019, Luiz has picked up more red cards (three) and conceded more penalties (six) than any other player in the competition.
- Moutinho scored his first home goal for Wolves (61 games at Molineux) – and all three of his Premier League goals have come from outside the box.
- Leno became the second Arsenal goalkeeper to be sent off in the Premier League, after David Seaman in November 1993 against West Ham.
- Granit Xhaka made his 200th appearance for the Gunners. Since his debut for the club in August 2016, he has played 46 games more than the next player (Bellerin, 154).
This was the first of three successive home matches for Wolves, who take on Leicester in the Premier League on Sunday (14:00 GMT) and then play Southampton in the fifth round of the FA Cup on Thursday, 11 February (17:30).
Arsenal are in the West Midlands again for their next match as they face Aston Villa in the league on Saturday (12:30).
- 11Rui Patrício
- 22Nélson Semedo
- 49KilmanBooked at 28mins
- 8NevesBooked at 47minsSubstituted forDendonckerat 74′minutes
- 28João MoutinhoBooked at 13mins
- 10PodenceSubstituted forVitinhaat 62′minutes
- 12Da SilvaSubstituted forFábio Silvaat 90+1′minutes
- 17Fábio Silva
- 1LenoBooked at 72mins
- 23David LuizBooked at 45mins
- 17Cédric Soares
- 18ParteyBooked at 41minsSubstituted forRúnarssonat 74′minutes
- 34XhakaBooked at 62mins
- 32Smith Rowe
- 19PépéSubstituted forAubameyangat 61′minutes
- 9LacazetteSubstituted forGabrielat 45′minutes
Match ends, Wolverhampton Wanderers 2, Arsenal 1.
Second Half ends, Wolverhampton Wanderers 2, Arsenal 1.
Foul by Nélson Semedo (Wolverhampton Wanderers).
Emile Smith Rowe (Arsenal) wins a free kick in the attacking half.
Attempt missed. Vitinha (Wolverhampton Wanderers) right footed shot from the centre of the box is close, but misses to the left. Assisted by Pedro Neto.
Corner, Wolverhampton Wanderers. Conceded by Rúnar Alex Rúnarsson.
Substitution, Wolverhampton Wanderers. Fábio Silva replaces Willian José.
Adama Traoré (Wolverhampton Wanderers) wins a free kick in the attacking half.
Foul by Rob Holding (Arsenal).
Attempt blocked. Bukayo Saka (Arsenal) left footed shot from the centre of the box is blocked.
Attempt blocked. Pierre-Emerick Aubameyang (Arsenal) right footed shot from the centre of the box is blocked. Assisted by Héctor Bellerín.
Attempt missed. Willian José (Wolverhampton Wanderers) header from the centre of the box misses to the left. Assisted by Adama Traoré with a cross.
Foul by Leander Dendoncker (Wolverhampton Wanderers).
Rob Holding (Arsenal) wins a free kick in the defensive half.
Corner, Wolverhampton Wanderers. Conceded by Granit Xhaka.
Attempt saved. Pedro Neto (Wolverhampton Wanderers) left footed shot from a difficult angle on the left is saved in the bottom left corner. Assisted by Maximilian Kilman.
Attempt saved. Pedro Neto (Wolverhampton Wanderers) left footed shot from the left side of the box is saved in the centre of the goal. Assisted by Vitinha.
Substitution, Arsenal. Rúnar Alex Rúnarsson replaces Thomas Partey.
Substitution, Wolverhampton Wanderers. Leander Dendoncker replaces Rúben Neves.
VAR Decision: Red Card Bernd Leno (Arsenal).