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.
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 climb a place to 13th, but will drop back to 14th if Crystal Palace avoid defeat at Newcastle United in a late game on Tuesday.
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.
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 performance 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.
- 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).