Manchester City booked their place in a fourth successive Carabao Cup final, as they beat a lacklustre Manchester United 2-0 at Old Trafford.
The visitors were right on top throughout the game barring a few nervy moments during the opening 20 minutes. The first half ended goalless, as both teams failed to capitalise on their chances. However, the Sky Blues soon opened the scoring, with John Stones tapping home a measured Phil Foden delivery into the six-yard box.
Guardiola's side, now on the ascendancy, dominated the entirety of the second half. Manchester United kept trying for an equaliser, but Fernandinho's goal in the 83rd minute doused all hopes.
On that note, let's have a look at how players from both teams fared in the game.
Manchester United Player Ratings:
Dean Henderson (7/10):
Dean Henderson was solid throughout the game. His save off a Mahrez shot midway in the second half was particularly a highlight of the game. The Manchester United goalkeeper wasn't at fault for any of the Manchester City goals, though.
Luke Shaw (6/10):
Luke Shaw managed to keep Raheem Sterling quiet the whole 90 minutes, except for one clumsy block in the first half. Although he was solid defensively, the left-back failed to make a mark while attacking, as he squandered good attacking chances with his poor decision-making in the final third of the pitch.
Victor Lindelof (6/10):
Victor Lindelof was good throughout the first half, but the center-back failed to cope up with the Manchester City attack in the second half, especially after John Stones' opening goal. He was found vulnerable when his teammates pushed higher up the pitch.
Harry Maguire (6/10):
Harry Maguire enjoyed a solid first 45 minutes, dealing well with Riyad Mahrez, but he was the culprit for Manchester City's opener, as he let John Stones free into the Manchester United box to tap the ball into an open net.
Aaron Wan-Bissaka (5/10):
Aaron Wan-Bissaka had a hard time dealing with Phil Foden on the Manchester United right-flank. The Manchester City winger caused problems galore for the English right-back, who also failed to clear the ball for Fernandinho's goal.
Fred (5/10):
Fred had a pretty quiet game besides being booked in the 69th minute. He was clumsy and failed to stop the Manchester City counter-attacks late in the second half of the game.
Paul Pogba (6/10):
Paul Pogba had a decent game, but he failed to make a mark. He could've done better with his cross early in the first half, though.
Bruno Fernandes (6/10):
Bruno Fernandes did well to test Zack Steffen from long range in the first half, but he failed to release Marcus Rashford through on goal late in the first half. The Portuguese had a below-par game as per his high standards.
Anthony Martial (6/10):
Anthony Martial did well to link up with Pogba and Rashford throughout the match, but he wasn't impressive. He tried to dribble past the Manchester City defence on several occasions but couldn't do so. As has been the case very often this season, the Frenchman had a quiet game barring a penalty shout in the second half.
Marcus Rashford (7/10):
Marcus Rashford was a livewire down the Manchester United right-flank and caused all sorts of problems for Oleksandr Zinchenko throughout the game. He was arguably Manchester United's best player on the pitch.
Ratings of Manchester United Substitutes:
Mason Greenwood (6/10):
Mason Greenwood did well after coming on in the second half but failed to provide the spark against Manchester City.
Donny Van de Beek: N/A.
Manchester City Player Ratings:
Zack Steffen (7/10)
It was another solid performance from the Manchester City goalkeeper. He did well to save a long-range shot from Bruno Fernandes in the first half. The 25-year-old distributed the ball well throughout the 90 minutes.
Joao Cancelo (7/10)
The Manchester City right-back did well to contain Pogba and Luke Shaw. However, that meant that Joao Cancelo wasn't able to push high as often as he normally does, but he still offered a lot going forward.
John Stones (8.5/10)
John Stones was relieved to see the offside flag raised after the ball bounced in off him inside the opening few minutes. He soon regained control of proceedings and was solid at the defensive end. Stones was also effective at the other end of the pitch, scoring Manchester City's opener in the 50th minute.
Ruben Dias (9/10)
Ruben Dias was by far the best Manchester City player on the pitch. The Portuguese centre-back dominated the game with his impeccable reading and positioning. He managed the most clearances (6), tackles (3) and shots blocked (2) and was deservedly the Man of the Match.
Oleksandr Zinchenko (7/10)
Oleksandr Zinchenko did well to cope with Rashford's searing pace. Although he had his wobbly moments, the Ukrainian managed to hold his own during the game.
Fernandinho (9/10)
The Manchester City captain was terrific and sniffed any danger before it arrived. Fernandinho was all over the pitch, breaking up play and committing tactical fouls. His ball-distribution was key for Manchester City, and he also managed to grab a brilliant long-range goal.
IIkay Gundogan (8/10)
Ilkay Gundogan once again did what he does best for Manchester City. The German midfielder was at the heart of every Manchester City attack, controlling the tempo of the game while trying to interchange positions with Mahrez and Kevin De Bruyne.
Kevin De Bruyne (8/10)
Unfortunate to hit the post in the first half, Kevin De Bruyne wasn't particularly at his scintillating best, but he still ran the show for Manchester City with his brilliant off-the-ball movement and passing throughout the game.
Raheem Sterling (7/10)
Afflicted by poor decision-making, Raheem Sterling failed to make a mark on the game. The Manchester City winger could have got an assist in the first half but decided to go for it himself rather than cutting the ball back for De Bruyne, who was in a better position. Overall, it was a decent game for Sterling.
Phil Foden (8/10)
Phil Foden caused all sorts of problems for Aaron Wan Bissaka down the left-hand side and was simply unplayable for most part of the game. He even had a goal ruled out for a marginal offside call in the first half. Foden looks to be getting better and better with each passing day.
Riyad Mahrez (7/10)
Deployed in an unfamiliar role of a striker, Riyad Mahrez lacked the incision and instinct in his play. However, the Manchester City player managed to force a brilliant save off Henderson in the second half.
Ratings of Manchester City Substitutes:
Rodri (6/10)
Brought on to protect Manchester City's slender one-goal lead in the 79th minute, Rodri did his job well.