Pep Guardiola was unable to select Aguero due to a knee injury, but the Argentina star's absence was hardly noticed as City edged a little closer to the Premier League title, with Silva stealing the show.
Any chance of struggling Stoke causing an upset looked over as early as the 10th minute, as Silva opened the scoring with aplomb after good work from Raheem Sterling, back from five games out with a hamstring injury.
The league leader doubled its advantage early in the second half – Silva again providing a good finish after a well-worked move involving Gabriel Jesus, starting his first Premier League game of the year.
Stoke threatened to pull one back just after the hour, but Bruno Martins Indi shot over from close range and from there it looked devoid of hope as the visitor tightened its grip.
City was unable to add further goals despite its dominance, but it mattered little as it re-established a 16-point gap at the summit and secured a first league double over Stoke since 1998-1999, when both clubs were in the third tier.
Much was made pre-game about Stoke's need to keep things tight and ensure it was still in the game during the final 20 minutes in order to maximise the impact of its partisan support.
After just 10 minutes, it found itself trailing.
Jesus released Sterling up the right flank and he played a low first-time cross into the danger zone, where Silva arrived to guide home in expert fashion.
Stoke nearly levelled soon after, but Badou Ndiaye's 20-yard effort was deflected agonisingly wide of the bottom-left corner after fine play out wide by Xherdan Shaqiri.
Although the visitor remained on top, they nearly shot itself in the foot nine minutes before the break – Ederson tipping the ball on to the roof of his net after Kyle Walker cleared a long ball back towards his own goal.
Jack Butland had to be similarly alert a few minutes later, getting down to his left to push Fernandinho's long-range strike away.
Butland was helpless five minutes after the interval, though, as Silva found Jesus and the Brazilian played a looping return pass into the area for the Spaniard, who neatly tucked away despite the goalkeeper approaching.
Fernandinho went close to adding a third a few moments later, bursting through the middle, linking with Kevin De Bruyne and then shooting into the side-netting.
Paul Lambert introduced Peter Crouch from the bench in the 63rd minute and he made an immediate impact, heading down a free-kick to Martins Indi, who blasted over from about eight yards.
Sterling should have rounded things off 12 minutes from time when he pounced upon an error after a drop-ball incident and charged through on goal, but he tried to round Butland instead of squaring to Jesus and that allowed Ndiaye to make a last-ditch tackle.