Arsenal headed into Wednesday's (AEDT) encounter unbeaten in its last seven league games and looked primed to extend its run to eight.
After Bukayo Saka saw an early goal disallowed, Nicolas Pepe gave them a deserved lead that was erased with the final kick of the first half as Ruben Neves converted a penalty after David Luiz was sent off.
Wolves were in control thereafter and made their one-man advantage count through a rasping strike from Moutinho, with Arsenal then reduced to nine after goalkeeper Bernd Leno inexplicably handled outside the area, a largely self-inflicted defeat leaving them eight points off the Champions League places having played a game more than fourth-placed Leicester City.
Saka almost had a hat-trick in the space of the first nine minutes, the teenager lashing against the left-hand post after just 36 seconds from Thomas Partey's superb long ball before seeing a close-range effort kept out by Rui Patricio and an emphatic finish chalked off by VAR due to Alexandre Lacazette straying offside in the build-up.
Maximilian Kilman headed over from a corner and Nelson Semedo tested Leno from long range, but Wolves were fortunate to receive another let-off when Patricio turned a fierce strike from Pepe against the crossbar.
Wolves did not learn their lesson, however, and Patricio was helpless to deny Pepe in the 32nd minute as the Ivorian showed determination to win possession in the box and bend the ball into the top-right corner.
But the game turned in first-half stoppage time, David Luiz seeing red after clipping Willian Jose as he bore down on goal and Neves leaving Bernd Leno no chance with a superbly struck penalty.
Arsenal brought on Gabriel Magalhaes for Lacazette to make up for the loss of David Luiz at the back, but there was nothing Gabriel or any Gunners player could do to stop Moutinho giving Wolves the lead in stunning fashion.
The Portugal midfielder took aim from well outside the box and produced a sparkling effort that beat the dive of Leno and flew in off the left post.
But Leno was deserving of criticism in the 72nd minute when he charged out of the box and knocked a long ball out of play with his hand, his dismissal ending any hope of Arsenal avoiding a damaging loss in their top-four push.