The Cape side were dominant in the opening stanza in the KZN Midlands and scored just before halftime through Keanu Cupido, but had to be at their best defensively to weather a second-half onslaught from the hosts.
In what was a hard-fought and tight opening period to the game, there was little in the way of goal-scoring chances until the 20th minute, when Ayanda Patosi picked out Siphelele Mthembu just inside the Maritzburg box, but his shot was badly skied over the bar.
Mthembu had another great opportunity seven minutes later when he was released clean through on goal, again by Patosi, but his attempted lob of Richard Ofori from 25-yards out went just over the crossbar.
The Cape side remained on top and after Roland Putsche had gone close with a 34th-minute header, the Citizens took the lead a minute before the break when Cupido headed the ball into an empty net after Ofori had failed to deal properly with a corner kick.
Maritzburg came out with intent after halftime and substitute Mohau Mokate could have levelled the game with his first touch, but from a great position, he sent a 46th-minute header wide of goal.
More was to follow as Deolin Mekoa sent a drive wide on 53 minutes, and as United upped the ante, the game became increasingly physical with a result that City lost two players – Thamsanqa Mkhize and Mthembu, to injury.
It was however only in the 77th minute when visiting keeper Peter Leeuwenburgh was called into action as he did very well to get down low to keep out Tholang Masagela’s shot from inside the box.
Despite Maritzburg showing great fight and character, they failed to carve open any further clear-cut chances as City held firm to book their spot in the semis.
The only good news of the day for Maritzburg was the appearance of Yannick Zakri in the stands, the former Sundowns striker looking set to sign shortly and add some much-needed firepower to the Team of Choice.