It appeared that the game would end in a draw but in the second minute of added-on time, the Brazilian netted his second of the game to move his team up to third place in the Premier League table.
City could have taken the lead as early as the second minute through new signing Jesus, who fired over the crossbar from 12 yards out, but it would not take long for the Brazilian to net his first goal at the Etihad Stadium.
The ball fell invitingly for him inside the penalty area and he made no mistake with an instinctive finish into the bottom corner from close range.
The home team completely dominated the first half with Swansea failing to register a single shot on goal, but they could not find a way to double their advantage.
The midfielder had a third opportunity from the edge of the area, but he did not make a proper connection with his curling effort and Fabianski made an easy stop.
Swansea needed to improve after the restart and they almost found an unlikely equaliser when Gylfi Sigurdsson sent a 30-yard free kick heading towards the top corner, only to see Wilfredo Caballero parry the ball onto the post.
Moments later, Leroy Sane struck the post with what was supposed to be a cross from the left, but that was as good as it got for City who were struggling to create the same kind of chances they did in the opening 45 minutes.
It lifted Swansea and just after the hour mark, Alfie Mawson should have done better when meeting a Sigurdsson corner, but he directed his header a couple of yards wide of the far post.
However, as the game entered the closing stages, they got back on level terms when the City defence sat off Sigurdsson and allowed him to fire the ball into the bottom corner from just over 20 yards out.
The visitors could not hang on, though, and in the second minute of added-on time, Jesus met a cross from Silva and although Fabianski saved his first attempt, he could not hold on and the Brazilian tapped home from a yard out to earn his team a dramatic win.