The KwaZulu-Natal Capital City side had the better of the chances on the night, but had to come from behind to equalise and send the match into extra time.
Maritzburg made a bright start, yet it was the visitors who were to draw first blood, in the 14th minute, when Jerry Msane headed the ball into an empty net after home keeper Bongani Mpandle had been left grounded following his attempt to punch clear an aerial ball into the box.
The Team of Choice responded positively to the setback though, playing some front-foot football in front of their home fans, who had turned out in big numbers.
Scoring opportunities followed, including one for Thabiso Kutumela, but after being teed up by Judas Moseamedi, he curled his shot just wide of the goal.
There was a chance for United to restore parity on the half hour mark when Mxolisi Kunene went on a storming run down the left before cutting onto his right foot, but his parting shot was pulled narrowly wide of the post.
Seven minutes later Maritzburg threatened again as Siyanda Xulu’s glancing header was cleared by the Highlands defence.
The Team of Choice seemed to up their efforts even more after the restart, and they had a sniff at goal soon afterwards as Moseamedi beat a couple of defenders before his pass across the line was deflected just wide of the target.
The home faithful didn’t have to wait long though for the breakthrough, which came in the 50th minute as Yusuf Jappie’s corner was headed in for an own goal by Highlands Park midfielder Mlungisi Mbunjana.
Moseamedi meanwhile continued to cause the visitors all kinds of problems and when he beat two players and picked out Jappie, a goal looked to be on the cards, but the debutant was unable to keep his shot under the bar.
Maritzburg kept up the pressure as Moseamedi sent a header over goal and then Bandile Shandu just failed to pick out the bottom corner with a shot from the edge of the box with 20 minutes of regulation time to play.
Jappie was also close to sealing victory with a late free kick, which was acrobatically tipped over by Lions of the North keeper Marlon Heugh.
The tie went to extra time and the visitors had an early chance when Peter Shalulile’s lob flew inches over the crossbar.
At the other end, a neat turn by substitute Clive Augusto set up a chance, but the Zimbabwean fired wide of the target.
Those were the only real openings though of a tense extra time period, and to penalties it went.
Mpandle got Maritzburg off to a great start when he saved Msane’s spot kick, but at the other end, Heugh denied Augusto.
However, with Peter Shalulile firing his effort over the bar and United successful through Xulu, Pogiso Sanoka and Jappie, it was left to Gabriel Nyoni to slot home the winning penalty.
Coach Eric Tinkler:
“We kept knocking on the door and I thought we wanted it more. We had the ascendancy. We defended very well and we kept going. Happy to get through. I am really proud of the boys.”
Maritzburg: Mpandle, Sanoka, De Reuck, Allie, Mngonyama, Xulu, Kunene, Claasen, Shandu, Kutumela, Moseamedi
Subs: Ofori, Morgan, Buchanan, Timm, Jappie, Augusto, Nyoni
Highlands: Heugh, Williams, Fransman, Msimango, Rae, Letsholonyane, Jooste, Msane, Mbunjana, Nyembe, Mogaila
Subs: Ngobeni, Motsepe, Ramagalela, Mbhele, Shalulile, Mzava, Mokoena