Pep Guardiola's side looked on course for glory after they raced into a 2-0 lead after half an hour. However, the Red Devils responded after the break, with Paul Pogba scoring twice before Chris Smalling grabbed the winner.
Shades of 2012 as Kompany Does It Again
Manchester United can't say they haven't been warned about Vincent Kompany, but they don't appear to have learned any lessons as the centre-back headed City in front after 25 minutes.
The goal was almost identical to the one he scored in a 1-0 win over United in April 2012, which saw City leapfrog their rivals in the table and go on to win the league.
Telegraph Football showed how similar the two strikes were:
It was fitting that Kompany broke the deadlock in an important match for City. The defender has shown tremendous courage and dignity throughout his career as he has battled frequent injury setbacks.
Football writer Graham Ruthven noted how his determination went unparalleled in the United ranks:
United's comeback has delayed City's title celebrations, but Kompany will still have the last laugh with the title destined for the Etihad.
Pogba Goes from Zero to Hero
Paul Pogba was back in the Manchester United team, and he surprised a few onlookers with a new blue-and-white hairstyle, as shown by Sky Sports PL:
The midfielder's haircut timing was pertinent, coming after Guardiola said agent Mino Raiola offered him the Frenchman in January, per Simon Stone at BBC Sport.
Former Manchester United defender Gary Neville was not impressed with Pogba, per Indy Football:
Indy Football @IndyFootball
Gary Neville on Paul Pogba: "He obviously enjoys the game, but at this moment coming here with blue hair today. Win? It’s fine. Lose? That’s going to get mentioned forever more by Man City fans, by Man Utd fans. Why would you even put yourself in that situation? It’s ridiculous." https://t.co/0g9itDWLdx
The midfielder did little to distinguish himself on the pitch in the first half. He was again guilty of conceding possession and did not show the commitment and hunger needed in a derby.
Yet it was a different story after the break as Pogba scored twice in 97 seconds to haul United back into the game, per Opta:
His second-half performance will go some way to silencing his critics, and United will hope the goals give him confidence to kick on for the rest of the season.
Smalling Endures Roller-Coaster Game
Chris Smalling endured a roller-coaster of a match as Kompany once again beat him for the opening goal.
The centre-back was also struggling to communicate with goalkeeper David De Gea, per Ruthven:
Smalling often frustrates Manchester United fans, as he is error-prone and lacks the quality to be considered an elite defender.
Miguel Delaney at The Independent said United need an upgrade on the centre-back this summer:
Yet Smalling also has the ability to contribute goals and came up with yet another to put United 3-2 up with a cushioned volley.
It was a brilliant finish, but there will still be debate as to whether his days at the club are numbered.
United Get Lucky
Although it was a derby, it took until the final 10 minutes for tempers to flare and the challenges to go flying in.
City were left justifiably aggrieved after Ashley Young flew in on Sergio Aguero in the penalty area, but no spot-kick was given.
Football correspondent Kieran Canning thought Young should have been sent off:
It was not the only controversial incident Young was involved in during the match. He escaped a handball early on after falling in the box and could have been booked for tangling with Sterling shortly afterward.
The Red Devils' luck did not end there, as City hit the post through Raheem Sterling late on, and United held on for all three points.
A Blow for City Ahead of Liverpool Test
This appeared like it would be a superb afternoon for City as they were 2-0 up after half an hour and looking rampant against a fragile United.
The title looked to be in the bag, and City seemed in great shape ahead of their Champions League quarter-final second leg with Liverpool.
However, it all went wrong after the break as United mounted a superb comeback and City once again leaked goals.
Guardiola has seen his team concede three goals in consecutive matches for the first time in his career, per Opta:
It's another blow for City and leaves them with confidence low ahead of Tuesday's crucial return.
City go into the game 3-0 down from the first leg and on this showing do not look as though they have enough to turn it around.