Ubuntu showed their intentions from the word go when Kamohelo Mahlatsi threatened for the opener, but was denied by Thela Ngobeni on 17 minutes.
Four minutes later, Taahir Ganga found space in the box from a cross but failed to hit the target from his head.
Ganga wouldn’t make the same mistake six minutes later when he beat Ngobeni with a header for the opener in the Western Cape.
This seemingly spurred the visitors up and it was no surprise that they drew level following a delightful finish by Sthembiso Dlamini a minute before halftime.
Before then, Ganga was presented with another opportunity to complete his brace, but the visitors was able to clear the danger.
In the second half another chance fell to Ganga, but he was unable to get any meaningful power on his effort allowing an easy save for Ngobeni.
Later on, Duncan Adonis threatened to reclaim the lead for Ubuntu from a free-kick but sadly he was unable to get Ngobeni to a save.
With neither side able to get the winner, the encounter went to the extra time and it was the hosts who managed to get the first shot on goal through substitute Dillon Goss but Ngobeni made the save.
Ubuntu missed another clear-cut opportunity after Waseem Isaacs failed to direct his effort on target with the goal gaping albeit metres in sight.
Ea Lla Koto almost made them pay at the opposite end, but were unable to make them pay leaving a nervy end to the remaining minutes.
Despite numerous attempts partly from the home side, with off-the-line clearances and guilt-edge misses, the tie was settled on penalties.
After two back-to-back misses from Ubuntu, it was left to former Orlando Pirates man Patrick Phungwayo to seal their semi-final berth which he did with a cool finish for a 4-2 penalty triumph.
Ubuntu: Jacobs, Sigweba, Heutchou-Kuilong, Fleurs, Sefoli, Chiwunga, Donn, Fredericks, Isaacs, Mahlatsi, Ganga.
Subs: Khoza, Goss, Mayo, Bezuidenhout, Gwala, Cale, Adonis.