With Wits carrying a 3-0 lead from the first leg, it was up to Eric Tinkler's side to show a different side to their game and attack, but there was never any urgency to do so as they tried more not to be beaten by a bigger margin.
It was all Wits in the first half as they dominated possession but Daine Klate, Gabadinho Mhango, Eleazar Rodgers and Thabang Monare all wasted opportunities to finish off the contest.
Rodgers had arguably the best chance in the 37th minute when the ever-lively Mhango crossed from the left but the tall striker, unmarked at the far post, could not keep the shot down on the bounce.
Before that Monare missed a close-range header, Klate hit a direct free-kick and a chance from just inside the area over the bar while Mhango’s shooting from range was also off.
Mhango did come close in the 40t minute when he smacked a left-footed half-volley against the right-hand upright as City offered nothing going forward.
City only had three goal attempts to Wits' 11 at half-time, looked blunt in attack and were unable to win the ball back from Gavin Hunt's side.
The second half started the way it ended, with more Wits opportunities missed as Klate and Pelembe each tried to tee up a pass instead of shooting themselves, while from a tight angle Monare missed the target again.
Tinkler brought on Bhongolethu Jayiya, Sibusiso Masina and Mpho Matsi for James Brown, Lehlohonolo Majoro and Duncan Adonis early in the second half, and Masina made a slight difference towards the end of the match with his strength and pace but to little effect.
Darren Keet, who was left in the cold for most of the night, made a good save from a rare City shot on target in the 78th minute when Jayiya, unmarked, took too long to control and allowed the goalkeeper to come out to block.
In the end it was comfortable for Wits, who are through to the final but will be disappointed about their profligacy in front of goal.
Cape Town City: Walters, Kobola, Gumede, Rode, Mokeke, Sim, Adonis (Matsi 56'), Manyama, Brown (Jayiya 46'), Majoro (Masina 56'), Moseamedi
Bidvest Wits: Keet, Allie, Hlatshwayo, Mkhwanazi, Hlanti, Monare (Myeni 72'), Mlambo, Pelembe, Klate (Gome 89'), Mhango, Rodgers (Malajila 73')