Birmingham lost experienced defender Paul Robinson to a red card early in the second period, but first-half goals from Maikel Kieftenbeld and David Davis proved enough to secure all three points for the visitors.
The result has moved Birmingham into 13th position in the Championship table, while Wolves have dropped one place to 20th after Burton Albion claimed a point at home to Blackburn Rovers.
Wolves' first real chance of the evening came in the 25th minute when Richard Stearman rose highest inside the Birmingham box, but the centre-back's header was just wide of the far post.
The visitors then had their second in the 32nd minute when Davis made use of a loose ball just inside the Wolves box by angling a brilliant effort into the bottom corner of the net, sparking wild celebrations from the midfielder.
Birmingham started the second period with their two-goal lead intact, but Gianfranco Zola's side were reduced to 10 men in the 53rd minute when experienced defender Robinson was handed a straight red card following a tangle with Jon Dadi Bodvarsson.
Even with an extra man, Wolves struggled to get going, however, and it was Birmingham that almost scored a third just before the hour when Cheick Keita broke into the home side's box, only to see his goal-bound effort blocked.
Half-time substitute Nouha Dicko might have halved the deficit in the 63rd minute when he met a dangerous cross from Andreas Weimann, but Birmingham goalkeeper Tomasz Kuszczak was on hand to make a smart save.
Wolves were back in the game in the 73rd minute, however, when Dicko converted a low Helder Costa cross to register his first goal since August 2015.
Bodvarsson and Matt Doherty both came close to a leveller as the home side pushed into the five minutes of additional time, but Birmingham just about held on to secure three vital points and make it another miserable night for Paul Lambert's team at Molineux.