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 thus ending the winning start to the season under Mourinho with its fourth straight victory.
City threatened to humiliate United in a dominant first-half display, racing to a 2-0 lead through goals from Kevin De Bruyne and Kelechi Iheanacho.
But a mistake by City keeper Claudio Bravo, making his debut following his move from Barcelona, allowed Zlatan Ibrahimovic to pull a goal back for United.
Mourinho threw on young striker Marcus Rashford after the break, and the 18-year-old had the ball in the net, but the goal was disallowed after coming off Ibrahimovic, who was offside.
Guardiola has won all six of his games in charge of City but this will be the sweetest of them all, coming at the expense of Mourinho in the latest instalment of their coaching rivalry.
After three years of bitterness and spats in their years in Spanish football with Real Madrid and Barcelona, Mourinho and Guardiola have established a cordial relationship now they are together in the same city in England.