Pep Guardiola emerged victorious from his first Premier League battle with old adversary Jose Mourinho as Manchester City secured a fully deserved win in a frantic Old Trafford derby.
Kevin de Bruyne's cool finish and Kelechi Iheanacho's tap-in after the Belgian hit the post put City in complete control as they outclassed Mourinho's Manchester United for most of the opening 45 minutes.
United were handed a lifeline just before the break when City's debutant keeper Claudio Bravo summed up his desperately uncertain display by dropping a free-kick to allow Zlatan Ibrahimovic to pull a goal back.
They mounted an aerial siege in front of the Stretford End but City held firm to maintain their position at the top of the table, coming closest to scoring when De Bruyne struck an upright from Leroy Sane's pass.
City started impressively in a frenetic fixture, showing greater quality and composure on the ball as both teams flew into challenges.
Guardiola drew first blood in his renewed rivalry with Mourinho, who gave first starts of the season to Jesse Lingard and Henrikh Mkhitaryan, only to replace them both at half-time.
The hosts had more possession in the second half, with Ibrahimovic having a goal ruled out for offside after deflecting a shot from the dangerous Marcus Rashford, who was introduced after 45 minutes.
Bravo, signed to replace City favourite Joe Hart, made a number of errors from crosses and with the ball at his feet, but United failed to capitalise, with both teams fading late on.