After a goalless first 45 minutes at Netstrata Jubilee Stadium – the alternative venue for the fixture due to ongoing COVID-19 restrictions in Melbourne – City suddenly seized control of the contest.
Marco Tilio created space out wide to send over a low cross that Stefan Colakovski converted at the near post in the 54th minute.
Macarthur came into the game on a five-match unbeaten away run but fell further behind when the same pairing helped Melbourne double their advantage.
Colakovski was the provider second time around, latching onto a long ball before squaring a pass across for the supporting Tilio to finish beyond goalkeeper Adam Federici.
At 19 years and 301 days, teenager Tilio becomes the third-youngest player to score in a semi-final in the competition, behind only Riley McGree and Mitch Nichols.
Sydney had booked a return ticket to the Grand Final on Saturday, edging out Adelaide United 2-1 thanks to first-half goals from Adam Le Fondre and Bobo. They won the title in 2020 thanks to an extra-time winner from Rhyan Grant.