Stefan Ortega
Manchester City's second-choice goalkeeper produced a huge save in the second minute to deny Iliman Ndiaye, and was dependable whenever Sheffield United threatened again. 7
Kyle Walker
Moving well into midfield, Walker responded to recent comments from Pep Guardiola about his inability to play in City's new system where John Stones and Rico Lewis have impressed off the right. His return to form will be a boost for the run-in. 6
Manuel Akanji
Solid as ever, Akanji was trusted to keep his place as Ruben Dias and John Stones were rested. His pace and awareness to snuff out one dangerous break was the highlight of another reliable performance. 6
ALSO READ: Man City vs Sheffield United highlights and reaction from FA Cup semi-final
Aymeric Laporte
Starting only his sixth game in the last 21 games, Laporte will be needed to play a part in City's run-in if Nathan Ake is set for any long spell on the sidelines. Playing in his natural centre-back role, this was a solid return to the starting XI after a long time as back-up. 7
Sergio Gomez
The left-back fared far better than his last start, 21 games ago at Southampton in the League Cup, this was Gomez's biggest game in a City shirt. Sheffield United didn't target him as other teams have, so Gomez could help the attack and looked far more comfortable inverting into midfield than previous outings. Still, one or two shaky moments when he was needed to defend. 6
Ilkay Gundogan
Selected in holding midfield ahead of both Rodri and Kalvin Phillips, the captain performed well in a more defensive role than he has played for most of the season, supported by Gomez and Walker both taking turns to invert into the centre. 6
Bernardo Silva
Playing everywhere from defensive midfield to a third striker at times, he won the penalty and Sheffield United had no answer to his ball retention. 6
Jack Grealish
This was one of Grealish's quieter performances of late. Not lacking effort, it felt like nothing would come off for the winger until he found Mahrez smartly for the third goal that confirmed City's place in the final. 7
Riyad Mahrez
Mahrez kept his composure to score the penalty, replacing Haaland on spot-kick duties. His second was brilliant, albeit against some second-tier defending, but take nothing away from the solo run and finish. A well-taken hat-trick goal saw him do what Haaland does best - take his chances when they come and take home the match ball. 9
Julian Alvarez
One good effort well saved as he partnered Haaland in attack on a rare start in a front two. A performance with plenty of hard work but maybe not the headline contributions to show for it. 6
Erling Haaland
Improved after the break following an almost-anonymous first half, barring a belting finish after the whistle had blown. His decoy run opened up the space for Mahrez to run down the middle and score his second. A useful rest for the last 25 minutes. 6
Substitutes
Cole Palmer (on 67)
Got stuck in after coming on. 6
Phil Foden (on 76)
Played as a striker alongside Alvarez as he replaced Haaland. 6
Kalvin Phillips (on 75)
Another useful run-out in defensive midfield, but this was a game he should be starting and it was telling that Gundogan got the nod even when Rodri was rested. 6
Rico Lewis (on 81)
Replaced Bernardo Silva and slotted into midfield. 6