City were more than a shade unfortunate to lose the fourth Manchester derby of the season to a first-half Anthony Martial goal and an added time second from Scott McTominay.
In a fast-paced and entertaining game, City just couldn’t find the equaliser a dominant second period deserved.
City started with some bright, attacking football that had United pinned back for the opening moments and a lovely move involving Sergio Aguero, Phil Foden and Raheem Sterling saw the England forward curl a low drive that David De Gea did will to push around.
But for all the bright approach play, it was United who opened the scoring on the half-hour, though the free-kick that lead to the goal had City players fuming as Bruno Fernandes made the most of an Ilkay Gundogan challenge.
The Portuguese then lobbed a pass into Anthony Martial’s path and the French striker’s volley squirmed under Ederson.
City came close to levelling four minutes after the restart when Sterling sent Aguero clear and the Argentinian thumped the ball home from 18 yards – the flag was up but a VAR check revealed it was a very close call.
Ederson was then almost caught out as he mis-controlled a back pass and Martial was denied by the Brazilian’s sliding tackle as he was about to tap home.
City responded minutes later with a sizzling Foden shot from 20-yards that De Gea did well to tip over.
On the hour, Pep brought on Gabriel Jesus and Riyad Mahrez, moving Foden into a more central midfield role and it gave City a sharper, more dynamic look.
Then, the best chance yet to pull level when Mahrez was sent clear on the right but as his low cross found Sterling, the ball just evaded the City and a glorious chance went begging.
It was the last real chance of the game for City who just find that one clear-cut opportunity and United added a late second with almost the last kick of the game to further rub salt in the wound.