Wolves twice took the lead through Fer Lopez and Ladislav Krejci, only for Jay Stansfield and a Jackson Tchatchoua own goal to leave the West Midlands derby level at half-time.
City missed two chances after the break before Wolves’ Adam Armstrong should have won it for the visitors, while both sides hit the bar.
Blues had owner Tom Wagner back in the directors’ box for the first time since he had a stroke in February, but it was Wolves who made the perfect start by taking a third-minute lead from a flowing move.
Lopez tapped home Rodrigo Gomes’ cross after Lopez fed Raul Jimenez and the Mexican found Gomes on the overlap.
It was the Spaniard’s fifth goal of the season in all competitions and third in the Championship.
In an exciting first half, Paik Seung-ho’s deflected shot was palmed away by Jose Sa at the other end, then Wolves had a penalty appeal turned down.
Bright Osayi-Samuel appeared to take down Jimenez as both went for the ball but referee Adam Herczeg waved play on.
Birmingham gifted Wolves a golden chance in the 18th minute as Christoph Klarer’s awful first touch let in Jimenez, who fed Gomes to his right for a shot parried away by James Beadle, with Klarer clearing near the line.
Stansfield then thundered home the equaliser in the 22nd minute.
After Patrick Roberts’ chip dropped over Andre, Stansfield controlled the ball before rifling home on the half volley, despite Wolves’ unsuccessful appeal that he had controlled the ball with his arm.
The visitors regained the lead in the 31st minute with Krejci steaming in to head home after Andre flicked on Hugo Bueno’s corner at the near post.
Wolves then presented Birmingham with a second equaliser in the 36th minute.
From Phil Neumann’s hopeful long ball, Tchatchoua hooked it backwards past Sa, who desperately chased back but could not prevent the ball bouncing into the net.
Jimenez rattled the top of the bar with a 30-yard curling free kick as Wolves looked for more goals but Blues looked the more likely scorers for most of the second half.
Neumann’s header flicked off Tchatchoua onto the bar, then Klarer flashed a free header just wide.
In between, the hosts appealed in vain for a penalty when Andre challenged August Priske.
Wolves missed the chance to win it in the 87th minute when Armstrong ballooned over the bar from Lopez’s square pass with Beadle committed.
Then Blues substitute Martin Ducksch’s free-kick forced a diving save from Sa.