The Spaniard's opener came in the 10th minute with a first-time finish from Raheem Sterling's cross.
Badou Ndiaye had Stoke's best chance of the opening period but his deflected shot went just wide.
Visiting goalkeeper Ederson then had to tip over a looping clearance from team-mate Kyle Walker.
City doubled their lead five minutes after the break when Silva finished a fine move and, although they had chances, Leroy Sane and Sterling could not add a third.
The defeat means Stoke remain in the bottom three on 27 points, two points from safety.
Stoke City: 17 Mar v Everton (H)
Man City: 31 Mar v Everton (A)