Wilfried Bony scored near the end of each half but goals from Fernandinho, Yaya Toure and the left-back were enough to secure a New Year's Day win for the visitors
Goals from Fernandinho, Yaya Toure and Aleksandar Kolarov secured the three points for Manuel Pellegrini's side to give them their first win at the Liberty Stadium.
Wilfried Bony grabbed two for the hosts but it was in vain as the visitors recorded another impressive victory.
The win took Manchester City back to the top of the table, ahead of Arsenal's clash with Cardiff City later on Wednesday, while the Swans remain in mid-table but will be nervously looking over their shoulder at the bottom three.
|By Matt Hill
A solid away win for Manchester City which will please Manuel Pellegrini, who sees his team return to the top of the Premier League - at least until Arsenal have their say.
His side looked menacing when attacking, as they have done all season, especially with Jesus Navas, Samir Nasri and Yaya Toure all on song.
However, despite their attacking prowess, City are still vulnerable to the counter and will be grateful that the excellent Wilfried Bony was unable to complete his hat-trick.
Michael Laudrup, on the other hand, will take positives from the way in which his side fought their way back into the game in the first half but will know that there is a lot of work to do to avoid a relegation scrap.
The hosts created the first chance as Bony collected a pass from Jonathan De Guzman on the edge of the penalty area but his low shot clipped the post on its way to going wide.
The visitors made the Ivorian pay for that miss almost immediately, as they opened the scoring in the 14th minute through Fernandinho. Swansea failed to clear a right-wing corner and the loose ball dropped to the Brazil international, who fired through a crowd and into the back of the net.
Laudrup's side went close to an equaliser in the 25th minute when a flowing move involving Bony and substitute Roland Lamah - on for the injured Pablo Hernandez - released De Guzman in behind the Manchester City defence but the Dutch midfielder could not get the ball out of his feet and his scuffed shot was easily held by Joe Hart.
Both sides had chances to get the game's second goal before the break and it was Bony who produced a leveller for the hosts. The forward got ahead of Pablo Zabaleta in the 44th minute to meet De Guzman's cross and head past Hart – although the 25-year-old appeared to be in an offside position when the ball was delivered.
Pellegrini's side restored their lead in the 58th minute, however, thanks to Toure's 10th league goal of the season. The midfielder created room for himself room inside the penalty area before his shot wrong-footed Gerhard Tremmel thanks to a deflection off Ashley Williams.
Kolarov then added the third goal eight minutes later with a great solo effort. The Serbian won the ball from Routledge inside his own half and ran unopposed to the Swansea penalty area, where he cut onto his right foot and fired past Tremmel – although the goalkeeper should have done better.
As Swansea continued to show endeavour, Bony missed a chance to reduce the deficit in the 72nd minute but he did net his second with a long-range strike in the second minute of injury time as the hosts gained some reward.