Defending champions Orlando Pirates advanced to yet another MTN8 final after defeating Cape Town City 3-1 on aggregate in the semi-final round.
Pirates made only one change from the 1-1 draw in the first first-leg, as a more defensive Makhahlene Makhaula took the place of Kabelo Dlamini while Tshegofatso Mabasa was supported upfront by Relebohile Mofokeng, Monnapule Saleng and Patrick Maswanganyi.
The Buccaneers looked to set the pace in the opening exchanges but they were repelled by City, who did not give them spaces in dangerous areas.
The Citizens had a first sight at goal on 17 minutes after Prins Tjiueza found his way in the box and fired a shot that was well saved by goalkeeper Sipho Chaine.
Jose Riveiro's charges increased their intensity after that and on 25 minutes, their pressure eventually paid off after Mabasa broke the deadlock with a close-range header from a cross by Mofokeng.
As City looked to respond, Pirates also threatened on transitions and the game opened up, with end to end attacks while City struggled to get their foot on the ball.
The hosts eventually doubled their lead just before half-time through a free-kick by Deon Hotto, who also made it 3-1 on aggregate.
Riveiro's men were on the front foot from the break as just seven minutes later Mabasa almost added a third on the day with a strike in the box that was smothered by goalkeeper Darren Keet after an error in the box.
The Buccaneers were threatening to run riot after the hour-mark and City had no choice but to make attacking changes with 20 minutes to go, as Taahir Goedeman and Jody Ahshene replaced Tjiueza and Fortune Makaringe.
Pirates were in control of the game in the closing stages and the Spanish coach introduced fresh legs in attack, as Gilberto replaced Mofokeng.
The Soweto giants were comfortable in the dying minutes and they managed the game with stoppages, as they booked their spot in the final for the third successive season.
Confirmed line-ups:
Orlando Pirates: Chaine, Monyane, Sesane, Ndah, Hotto, Makhaula, Mbatha, Maswanganyi, Saleng, Mofokeng, Mabasa
Subs: Dladla, Rasebotja, Dlamini, Gilberto, Sibisi, Timm, Kimvuidi, Makgopa
Cape Town City: Keet, Mkhize, Cupido, Petrus, Domingo, Nyama, Mokotjo, Makaringe, Tijueza, Gonzalez, Rhodes.
Subs: Oliaro, Soukouna, Fisher, Frances, Gordinho, Goedeman, Sereetsi, Ahshene, Amato