Arsenal suffered a third successive Premier League defeat at the Emirates Stadium as familiar problems continue to plague the Gunners.
Pedro Neto and Daniel Podence fired Wolves to victory either side of a powerful header from Gabriel Magalhães.
The Gunners just edged possession but failed to test Rui Patricio in the Wolves goal as the forwards fired blanks once again.
Individually Arsenal have the players to be challenging for the top four but as a collective they are deserving of their current standing of 14th and manager Mikel Arteta is struggling to get his squad to play to his vision.
The game began in worrying circumstances following a clash of heads between David Luiz and Raúl Jiménez. Wolves’ Mexican striker needed lengthy treatment before he was stretchered off the pitch while Luiz returned to action with a heavily strapped head.
It took a while for the players to settle and get into a rhythm following the pause in play but it was Wolves who looked more dangerous, with Adama Traoré enjoying his battles with Kieran Tierney and it was a cross from the Spaniard that led to the visitors’ opener.
Leander Dendoncker met the pin-point delivery and smacked a header off the crossbar but the ball fell into the path of Pedro Neto who fired in the rebound.
Arsenal responded with Tierney getting in behind but Conor Coady got a vital flick with Pierre-Emerick Aubameyang ready to tap home. However, the Gunners worked the resulting corner perfectly with Willian floating in a brilliant ball for Gabriel to power home.
The hosts were getting some joy down the left-hand side through Tierney and Bukayo Saka but the final ball failed to produce goal-scoring opportunities and when an attack broke down, Wolves struck.
Traoré danced his way past Tierney and Xhaka to send Neto racing towards goal. Bernd Leno could only parry his effort and Daniel Podence picked up the loose ball, rode the challenge from Gabriel and slotted into the corner.
Blood started to leak through Luiz’s bandages as much as he and his defensive colleagues leaked chances with Dendoncker, Traoré and Fábio Silva all trying their luck. Ten minutes of added time followed but Arsenal held them off until the break.
The expected withdrawal of Luiz came at half time with Rob Holding replacing him.
The Gunners improved after the break and could have levelled within minutes when Héctor Bellerín managed to fire a ball into the box but Saka’s connection wasn’t clean enough.
Arsenal looked vulnerable on the counter and when a misplaced pass handed Wolves possession, they sprang into action. Neto broke clear down the left but Gabriel read his cut back to Silva and cleared the danger.
Joe Willock and Willian linked up well at a corner to play Saka into space but his cross was too high for Holding and the defender headed over.
With the game slipping away Arteta introduced Reiss Nelson for Willian and the young Englishman had a great chance to find the equaliser with 15 minutes remaining but he couldn’t keep his shot down when the ball fell invitingly for him in the box.
Alexandre Lacazette was Arteta’s last roll of the dice as he came on for Xhaka for the final 10 minutes with Arsenal ramping up the pressure. Aubameyang squandered a gilt-edged chance when he headed wide from a Bellerín cross in the only real moment of the danger the hosts created in the final stages of the game in what proved to be another frustrating night for Arsenal and Arteta.