Match ends, Manchester United 1, Manchester City 2.
Manchester United manager Jose Mourinho said his side's title hopes are "probably" over because referee Michael Oliver failed to award them a penalty in their 2-1 loss to "lucky" Manchester City.
Pep Guardiola's team stretched their lead at the top of the table to 11 points and became the first team to win 14 successive English top-flight games in a single season.
City took the lead their vast superiority deserved when man-of-the-match David Silva hooked home from close range after confusion at a corner on 42 minutes, only for United to be handed a lifeline in first-half stoppage time when poor defending from Nicolas Otamendi and Fabian Delph allowed Marcus Rashford to steal in for a composed finish.
Otamendi made amends nine minutes after the break when Romelu Lukaku - who had a poor game - lashed at a clearance in the area and the City defender pounced on the rebound to score.
- Has Mourinho lost the battle with Guardiola?
- My Barcelona philosophy is working in England - Guardiola
Mourinho's post-match focus centred on an incident in the 79th minute, when Ander Herrera went down in the box under a challenge from Otamendi and was booked for diving.
"My first reaction is I feel sorry for Michael Oliver because he had a very good match but unfortunately he made an important mistake," Mourinho told BBC Match of the Day.
"The result was made with a big penalty not given. That would have been 2-2.
"Michael was unlucky because it was a clear penalty."
Asked whether the title race was over, Mourinho replied: "Probably, yes. Manchester City are a very good team and they are protected by the luck, and the gods of football are behind them."
Before Sunday's game, Mourinho had suggested City's players go down too easily - something Guardiola dismissed, along with the Portuguese's assertion United should have had a penalty.
"Last season it was the same - we won here and it was the referee. Today as well," Guardiola said.
"Yesterday he spoke about the referee. We are an honest team. We had 65% ball possession, which means we wanted to play. We came here and did that.
"It's not true that my players go down easily. That is not an argument I believe."
Sunday's result ended United's 40-match unbeaten run at home - which stretched back to City's win here in September 2016.
City, who have dropped only two points in their first 16 league games, had opportunities to extend their lead but it was keeper Ederson who made the decisive late intervention with a miraculous double late save from the luckless Lukaku and substitute Juan Mata.
- Podcast: Is the Premier League title race over?
- Listen: Man Utd were outfought and outplayed - Savage
Is the title race over?
It is a brave call to declare the title race over in early December - but the statistics and evidence are piling up to suggest the chase is on for second place behind City.
City will effectively have to lose four games while all of their rivals need to keep winning, tough to see with Guardiola's team having won every league match since Everton took a point at Etihad Stadium in the second game of the season.
"We are still in December. If we have 11 points when we play the second derby in April then maybe I will tell you that we have the title," said Guardiola, who was full of praise for his side's performance.
"We won at Old Trafford again, that is why I am the most pleased and of course for the three points," he added. "We played good, with a lot of courage. I'm so satisfied."
The trip to Old Trafford, and the renewal of old rivalries between Guardiola and Mourinho, was the most eagerly awaited game of the season between the two teams at the top of the table and was seen as the acid test of City's apparent infallibility.
Those looking for cracks in the Guardiola armour pointed to City having to secure three wins against Huddersfield Town, Southampton and West Ham United with late, late goals.
If City's confidence had been shaken at all by having to fight for victories, there was no sign here as they played with a composure and positivity that was a level above United.
There can be no doubt City were deserved winners and even showed the street wisdom of champions to run down the clock in the closing seconds, to the fury and frustration of Old Trafford.
The title race may not be over - but there was no escaping the feeling a crucial blow has been inflicted on United and the rest of City's pursuers.
Man of the match - David Silva (Manchester City)
Silva may be small in stature but he stood head and shoulders above every other player in the intense heat of this game.
The Spaniard may now be 31 but it is little wonder City were so delighted to secure him on a new contract until 2020.
Silva showed again why he deserves to be ranked as a Premier League great, and one of the finest players to play for City.
He had more time on the ball than any other player, the hallmark of class, and always seemed to have more options in possession than any other player.
Silva pounced for City's crucial first goal, held his own in the physical exchanges and even shrugged off a heavy bang to the head in a clash with United's Marcos Rojo.
It was a complete performance from a world-class player.
Mourinho too negative?
City fans stayed in their seats long after the final whistle, delivering a taunt that had echoed around Old Trafford throughout this landmark victory.
"Park The Bus, Park The Bus, Man United…" was the chant that was met with a muted response from the home support, who had seen City show more attacking intent and flair than Mourinho's side could muster.
Until a predictable late charge, this was a strangely muted display from United. Their need for victory was arguably greater than City's as they started the game with an eight-point deficit, but they spent much of the first half on the back foot.
Mourinho's line-up demonstrated attacking intent with the inclusion of Lukaku, Rashford, Jesse Lingard and Anthony Martial. United also missed the power and influence of Paul Pogba, suspended after his red card at Arsenal.
It was still a surprise, however, to see City so comprehensively dominant from the opening exchanges and United were barely able to believe their luck that they went in at half-time on level terms.
Lukaku's lack of confidence and touch did not help and there was an element of good fortune about Ederson's late saves - but there was no doubt United did not push hard enough for victory and were second best.
Guardiola's hold over Mourinho - match stats
- This was just the second time a team has scored more than one goal in the Premier League at Old Trafford against Mourinho's Manchester United (also City in September 2016, 2-1).
- Mourinho has lost nine matches in all competitions against Guardiola, more than against any other manager.
- United posted a 35% possession figure, their lowest at Old Trafford in the Premier League since 2003-04 (when Opta started collecting this data).
- Rashford has been involved in 11 goals in 12 games in all competitions at Old Trafford this season (six goals, five assists), more than any other United player.
- Otamendi is now the top-scoring defender in the Premier League this season (four goals).
- Lukaku has scored just five goals in his past 40 Premier League appearances against the 'big six'.
United welcome Bournemouth to Old Trafford on Wednesday at 20:00 GMT and are at West Brom on Sunday, 17 December at 14:15.
City travel to Swansea on Wednesday (19:45), before hosting Tottenham on Saturday (17:30).
- 1de Gea
- 25A Valencia
- 5RojoBooked at 36minsSubstituted forLindelöfat 45'minutes
- 18YoungBooked at 90mins
- 21HerreraBooked at 79minsSubstituted forMataat 82'minutes
- 14LingardSubstituted forIbrahimovicat 76'minutes
- 19RashfordBooked at 63mins
- 2WalkerBooked at 4mins
- 4KompanySubstituted forGündoganat 45'minutes
- 17De Bruyne
- 21SilvaBooked at 73mins
- 33Gabriel JesusSubstituted forMangalaat 59'minutes
- 19SanéSubstituted forBernardo Silvaat 88'minutes
- 20Bernardo Silva
- Michael Oliver
- Shots on Target
Second Half ends, Manchester United 1, Manchester City 2.
Corner, Manchester City. Conceded by Ashley Young.
Corner, Manchester City. Conceded by David de Gea.
Attempt saved. Bernardo Silva (Manchester City) left footed shot from the left side of the six yard box is saved in the bottom left corner. Assisted by Kevin De Bruyne with a through ball.
Corner, Manchester City. Conceded by Anthony Martial.
Ashley Young (Manchester United) is shown the yellow card for a bad foul.
Raheem Sterling (Manchester City) wins a free kick on the right wing.
Foul by Ashley Young (Manchester United).
Substitution, Manchester City. Bernardo Silva replaces Leroy Sané.
Corner, Manchester City. Conceded by Chris Smalling.
Delay over. They are ready to continue.
Delay in match Ederson (Manchester City) because of an injury.
Attempt saved. Juan Mata (Manchester United) left footed shot from very close range is saved in the centre of the goal.
Attempt saved. Romelu Lukaku (Manchester United) left footed shot from the centre of the box is saved in the centre of the goal. Assisted by Anthony Martial.
Offside, Manchester United. Nemanja Matic tries a through ball, but Juan Mata is caught offside.
Offside, Manchester United. Ashley Young tries a through ball, but Zlatan Ibrahimovic is caught offside.
Substitution, Manchester United. Juan Mata replaces Ander Herrera.
Raheem Sterling (Manchester City) wins a free kick in the defensive half.
Foul by Ashley Young (Manchester United).