Sergio Aguero opened the scoring shortly before half-time, and Leroy Sane added to the advantage after the break.
Sunderland didn't play poorly, but a lack of efficiency doomed the Black Cats.
As shared by City's official Twitter account, manager Pep Guardiola opted to rest star midfielder Kevin De Bruyne, while Nicolas Otamendi also took a spot on the bench:
The first chance of the match came early, as Bryan Oviedo failed to deal with a high ball into the box, and Fernandinho tried his luck, missing the target.
On the other side of the pitch, Sunderland's star striker, Jermain Defoe, sent a warning to the visitors, as he almost made good contact with a cross but instead steered the ball into the hands of Willy Caballero.
City predictably dominated possession in the early stages, but chances were few. The absence of De Bruyne likely played a part, but the Sky Blues also didn't play with much urgency, and the ball didn't move at speed.
Some bad communication nearly resulted in a chance for Raheem Sterling, but Jordan Pickford reacted in the nick of time. Adnan Januzaj nearly picked out Defoe, but Caballero read the situation well and collected the ball ahead of the forward.
Defoe went close after 20 minutes, striking the post from distance, and Fabio Borini failed to find the mark with a follow-up header. BetVictor couldn't help themselves:
More City possession followed, but with the visitors finding almost no success out wide, the Black Cats comfortably held their ground. When Aguero did find some space, he was caught by John O'Shea, who earned the first booking.
Fernandinho tried his luck with another shot from distance that never threatened Pickford, and Billy Jones launched a header right at Caballero. David Silva came within inches of turning Sane's pass home, and Jones suffered a similar fate, just missing the mark.
It was Aguero who broke the deadlock shortly before half-time, reading the attack well and running into space for a simple tap-in. As shared by Bleacher Report UK, plenty of fans thought he'd find the net against lowly Sunderland:
Silva thought he had doubled the lead in injury time, but Sterling was offside in the build-up to the goal.
Sunderland tried to fight back at the start of the second half, and Defoe almost found himself with the ball in a promising position, only to see the flag go up.
The Citizens remained the better side, however, and Bacary Sagna should have played in Aguero after a quick attack for what would have been a certain goal.
Silva put Pickford to work before Sane doubled the advantage, finishing off a great move that was made by a superb pass from his Spanish team-mate. Bleacher Report UK loved it:
The Black Cats didn't get lucky with their finishing, as both Sebastian Larsson and Lamine Kone missed excellent chances to pull a goal back.
Januzaj went close with a header that failed to put Caballero to work, and Kone only just managed to clear a cross intended for Aguero. The defender produced a fine block to deny Sane shortly after.
City did a great job killing the tempo late, as the visitors controlled the ball and forced Sunderland to chase after it. The introduction of De Bruyne only helped matters for the Sky Blues.
Defoe had the ball in the net with five minutes to play, but he was offside by at least five yards when he was played in, and the goal was correctly disallowed. Pickford made another stop on Aguero before the official called an end to the match.
Per the club's official Twitter account, Guardiola was happy with the result and the level of play after a difficult start: