The Citizens were without the services of Sergio Aguero and Vincent Kompany, while Bony made a return to the line-up, after starting on the bench in the Champions League.
Swansea almost went ahead inside the first five minutes when Wayne Routledge was played through on goal, however Joe Hart produced a fine save to deny the winger from close range.
The Swansea had another chance in the 15th minute, as Routledge did well to pick out Gylfu Sigurdsson, who forced Hart into another fine save from 12-yards out.
However, City broke the deadlock in the 25th minute as Wilfried Bony lost his marker to head home Jesus Navas’ corner at the near post.
Swansea nearly hit back two minutes later but Jordan Ayew’s glancing header sailed just over the crossbar.
The score remained 1-0 in favour of Manuel Pellegini’s side at the halftime break.
City were in control in the opening stages of the second half and almost extended their lead in the 50th minute, however Lukasz Fabianksi was well-positioned to deal with Yaya Toure’s curling free-kick.
The Swans pushed for an equaliser and were nearly rewarded after the hour-mark, as Sigurdsson’s curling free-kick was tipped away by Hart.
Baftembi Gomis brought Swansea back into the game in the 89th minute, as he did well to turn Mangala, before rifling the ball into the top corner from a tight angle.
However, City secured the win in stoppage time via a deflected effort from Yaya Toure .