After winning 21 games on the bounce since December 15, Manchester City's impressive streak was brought to an end by Manchester United at the Etihad.
The game sparked to life when Gabriel Jesus hacked down Anthony Martial in the penalty area seconds after kick-off. Bruno Fernandes stepped up and converted from the spot.
Pep Guardiola’s side dominated possession the entire first half but were let down by their sloppy finishing. Manchester City had their first real effort at goal at the start of the second half, when Rodri's shot grazed the top of the crossbar.
While Manchester City continued to misfire, Manchester United doubled their lead with a surprise counter-attack started by a quick throw by Dean Henderson.
Full-back Luke Shaw charged deep into the Manchester City half and exchanged passes with Marcus Rashford before sending a low strike into the bottom right corner.
Anthony Martial came close to a third when he was clean through on goal, but failed to beat Ederson as he fired his shot straight at the City goalkeeper.
Manchester City continued their search for a way back into the game but were met by a dogged United defense.
While the result does not have a significant effect on the shape of the table, as Manchester City are still 11 points clear of second-placed Manchester United, the Reds have now grabbed a fourth victory in eight games against Manchester City.
Here's how each player fared in the game.
Manchester City ratings
Ederson: 6/10
The Manchester City goalkeeper did well to get a hand to Bruno’s penalty, but unluckily failed to keep it out. He made a vital stop to keep his side in the game when he denied Martial a clear scoring chance in a one-on-one situation.
Joao Cancelo: 5/10
Cancelo was uncharacteristically quiet for Manchester City on the evening. He struggled at both ends of the pitch, as while he failed to contribute meaningfully in attack, the visitor’s two goals came from his side.
John Stones: 6.5
The Manchester City defender performed superbly as he was solid when called upon in defense and constantly drove forward, aiming to start an attack.
Ruben Dias: 6/ 10
The Portuguese was not his usual dominant self as he struggled with the pace of the United attack, but he still had a solid outing.
Oleksandr Zinchenko: 6/10
Manchester City’s best defender of the first half. He was a constant threat to the visitors, often charging forward to create something for his teammates.
He came close to equalizing for the hosts with a brilliant strike in the first half but for the heroics of Dean Henderson. He faded as the game progressed, just like the rest of the Manchester City players.
Rodri: 5.5/10
The towering midfielder was handled expertly by the Manchester United midfield. He struggled to get a foothold in the game and often looked out of pace with the rest of his teammates. He came closest to scoring for Manchester City with an early second-half strike that grazed the crossbar.
Kevin De Bruyne: 6.5/10
The Manchester City talisman looked as dangerous as ever, but while he constantly looked to create something for his side with defence-splitting passes, he was let down by his teammates, who lacked the cutting edge in the final third.
Ilkay Gundogan: 5.5/10
Along with De Bruyne, Gundogan dictated the pace and tempo of the Manchester City attack and posed a serious threat to the Reds' defense. He kept the play ticking with neat and tidy passes, but he couldn't do any damage upfront.
Riyad Mahrez: 6/10
Unarguably the host's best performer going forward. He constantly tore at Luke Shaw as he looked to make something happen from the right wing. He completed three of his five dribble attempts but struggled to contribute defensively as he was easily beaten and outpaced by Shaw in the build-up to Manchester United’s second goal.
Gabriel Jesus: 4/10
Gabriel Jesus conceded a penalty leading to the Red’s opening goal barely 30 seconds into the game and went downhill from there on. The Brazilian was simply non existent in the Manchester City attack, posing no threat whatsoever before his substitution in the 70th minute.
Raheem Sterling: 4/10
Another outing to forget from the England international. He failed to beat Aaron Wan-Bissaka on countless occasions, and even when he did, he looked out of ideas in the penalty area. He missed two glorious chances to pull one back for the Citizens as he continues to struggle for form in front of goal.
Player ratings for Manchester City substitutes
Kyle Walker: 5/10
He came on for the struggling Cancelo in the 65th minute and tried to impact the game in attack. He created a big change for Sterling with a whipped-in cross, but the forward fluffed his finish.
Phil Foden
Sent on by Guardiola to inject life into the attack down the left flank, but despite spending 20 minutes on the pitch, he failed to impact the game as he was met by a resolute United defense.
Manchester United player ratings
Dean Henderson: 7/10
Henderson returned with a clean sheet. While the Manchester City attack posed little threat, he did well to deny Zinchenko's powerful strike, before starting the attack that led to Shaw’s goal with his quick distribution.
Aaron Wan-Bissaka: 7.5/10
A constant thorn in the flesh for Raheem Sterling. The Manchester United full-back kept Sterling at bay the entire 90 minutes, winning all but one of his attempted duels down the right flank. He finished the game with five interceptions and three tackles.
Victor Lindelof: 8/10
A statement performance from the central defender who has come under heavy criticism in recent weeks. He stood up to the challenge of Gabriel Jesus, keeping the Brazilian toothless the entire game. He did not hesitate to throw his body on the line to prevent any goal-bound shot.
Harry Maguire: 7.5/10
Despite receiving an early yellow card, the Manchester United captain kept a cool head to rebuff countless waves of the host's attack. Maguire made a game-high nine clearances on the evening, as he did not hesitate in snuffing out any danger to his goal.
Luke Shaw: 8.5/10
Another outstanding performance from the full-back, who has been unstoppable this season. While he initially struggled against Manchester City’s Riyad Mahrez, he grew into the contest as the game wore on. He doubled Manchester United’s lead after a superb charge deep into the City half, before drilling in a low finish past the rooted Ederson.
Scott McTominay: 7/10
The Scotland international played his part excellently to ensure his side finished with all three points. Along with Fred, he provided defensive cover in midfield, covering lots of ground and pressing incessantly. He finished with two tackles, two clearances and one interception.
Fred: 7/10
Fred put in an industrious shift at the center of the park. While he isn’t as technically gifted as City midfielders, his doggedness and tenacity in pressing the opposition was impressive as he showed his defensive brilliance.
Daniel James: 6.5/10
The Wales international did not hesitate to run at the Manchester City defense at any opportunity, and while he might not have made a telling contribution in attack, he kept Zinchenko on his toes the entire game.
Bruno Fernandes: 8/10
Manchester United’s star man opened the scoring two minutes into the game from the penalty spot. He kept the ball moving in midfield, spreading the ball amongst his teammates, while also contributing defensively with seven ball recoveries to help his side grab all three points.
Marcus Rashford: 7/10
Rashford had a slow start at the Etihad, but gradually grew into the game as it wore on. He laid the ball for Luke Shaw to fire home after showing his quick feet inside the penalty area.
Unfortunately, he was hooked off in the 73rd minute for Mason Greenwood, after picking up a slight injury while tracking back to stop City’s deadly counter.
Anthony Martial: 7/10
A mixed outing for the Frenchman. While he was more active and involved in the game, taking on players, linking up with his teammates and even winning the early penalty, he missed a glorious chance to get on the scoresheet when the ball fell kindly for him, and he went one-on-one with Ederson. However, he fired his shot straight at the City shot-stopper.
Player ratings for Manchester United substitutes
Mason Greenwood: 5/10
The youngster came on for the injured Rashford but couldn't quite make an impact.