Silva flicked in the opener on 27 minutes and eight minutes later Kevin De Bruyne surprised Lukasz Fabianksi with a curling free-kick that found its way through a crowded penalty area.
Sergio Aguero was denied by Fabianski, before Silva netted his second with a clever chip.
Aguero then added a late fourth as City achieved their 15th consecutive top-flight win, surpassing Arsenal's mark set over two campaigns in 2002.
City remain 11 points clear of Manchester United at the top. Swansea are bottom on 12 points.
Swansea: 18 Dec v Everton (A)
Manchester City: 16 Dec v Spurs (H)