Bony bagged a second-half brace after Lee Novak’s header had given the Championship side the lead at half time.
The Swans’ poor recent run looked set to continue when Novak’s glancing header gave Birmingham a deserved lead.
But the introduction of Bony at the interval changed the game, with the Ivory Coast international scoring twice in three minutes to take his tally to 16 for the season and seal a 2-1 win.
Bony’s first came when he smashed Roland Lamah’s cross home from close range before the striker doubled his tally with a cool finish from a brisk Swansea attack.
Glowering skies and a fierce hailstorm minutes before kick-off did not appear to be a good omen and so it proved as the Swans turned in a rudderless first-half display.
Having already knocked the South Wales side out of the third round of the Capital One Cup in September, it was the Blues who enjoyed the brighter start on a wet and windy Midlands afternoon.
Lee Clark’s side took the lead over their Premier League opponents in the 14th minute when Novak’s deft header from a Paul Caddis cross left Swansea goalkeeper Gerhard Tremmel well and truly beaten.
Tremmel was in trouble again moments later when a mix up allowed Albert Rusnak through on goal, before Swansea captain Ashley Williams raced back to clear the line.
The visitors’ best chance of the first period fell to Pablo Hernandez but the Spaniard was unable to steer his effort home after collecting Neil Taylor’s cross from the left wing.
Birmingham again had the opportunity to extend their advantage when Chris Burke broke away from Chico Flores before firing his shot wide of the target.
Swansea’s best chance to level proceedings came on the cusp of half time when Flores nodded a Hernandez free-kick into the path of Jordi Amat, who blazed over the crossbar from yards out.
Tremmel tipped over a Mitch Hancox effort in first-half stoppage time and the second half started little better for the visitors when Dwight Tiendalli’s slack defending allowed Shane Ferguson through, with Williams making a superb last-ditch tackle.
But Swansea began to enjoy a decent period of pressure around the hour mark, with Lamah volleying a good chance against Bony, who had replaced Hernandez, before Hancox made a terrific tackle as the Ivorian went through on goal.
Bony’s strength and movement was causing Birmingham all manner of problems and Doyle saved well at his near post from a fierce low shot.
And the £12million man got his reward by firing in the equaliser in he 67th minute.
Lamah’s cross was at an awkward height but Bony dispatched a left-footed volley beyond Doyle with ferocious authority.
Seconds later Lamah could have put them ahead only for Doyle to snatch the ball from his feet as the Belgian tried to round the keeper.
But there was no reprieve for the Blues in the 69th minute. Swansea broke through Lamah and Alejandro Pozuelo’s tee-up saw Bony shift away from the advancing Doyle and fire past the two defenders on the line to turn the game on its head.
The final 20 minutes did not pass without alarm, with Leon Britton clearing off his own line after Tom Adeyemi had surged into the Swansea box, but the visitors survived to advance.