David Davis scored a freak own goal to give the rock-bottom visitors a first-half lead and the Robins looked on course for their first away win since Sean O'Driscoll took charge.
But Sylvan Ebanks-Blake and Kevin Doyle converted two Stephen Hunt crosses to earn just their second victory in 2013 and end a seven-game winless run at home.
The deadlock was broken in the 25th minute by one of the strangest goals of the season. Davis returned Carl Ikeme's short goal-kick back to his goalkeeper but the ball went straight through his legs and into the back of the net. It was not a strong backpass but on target - which meant Ikeme's miscontrol proved costly.
Ikeme, heavily involved in the freak opener, was then withdrawn at the interval by Dean Saunders to be replaced by Dores De Vries. That change meant the former Doncaster boss had used all his three substitutes after just 45 minutes.
City had Tom Heaton to thank for keeping their lead intact. The former Cardiff stopper pulled off a top-drawer save to keep out Ebanks-Blake's 18-yard effort.
Wolves had not won a Championship match this season when conceding the first goal but they drew level with 14 minutes to go when Ebanks-Blake span and volleyed Hunt's pass into the top corner.
And the game was then turned on its head just four minutes later when another Hunt delivery allowed Doyle to head home a goal at the near post for a goal which could prove priceless for Wolves.