Wits made four changes for the clash as Buhle Mkhwanazi, Gabadinho Mhango, Terrance Dzvukamanja and Simon Murray came in, while United made three in Siphesihle Ndlovu, Mohau Mokate and Yannick Zakri.
Maritzburg nearly went behind early on when Richard Ofori’s clearance fell to Mhango outside the box, but the winger's attempted lob from distance failed to hit the target with the net gaping, before Thulani Hlatshwayo hit the upright moments later.
Into the final quarter of the half, Ndlovu regained possession from midfield and found Justice Figareido with a well-weighted through ball, but Darren Keet did well to deny the Maritzburg forward.
After a quiet spell in the half, Wits launched a quick counter-attack ten minutes after the break when Murray’s through ball sent Dzvukamanja through on goal, but Ofori rushed off his line to block the danger.
Gavin Hunt made his second change on 63 minutes as Lehlohonolo Majoro replaced Murray, a decision which certainly proved fruitful for the home side.
Majoro then gifted the home side the lead in the 80th minute, with the Wits forward skipping past Ofori on his way to finding the back of the net.
Four minutes later, the league leaders were awarded a penalty when Rushine De Reuck handled inside the box. Majoro took responsibility but failed to complete his brace as Ofori pulled off the save to give his side a glimmer of hope.
However, the home side were able to see out the latter stages of the half to collect three points, which steers them five points clear of Orlando Pirates.
Wits: Keet, Hlatshwayo, Nonyane, Mkhwanazi, Hlanti, Alexander, Monare, Mhango, Hotto, Dzvukamanja, Murray.
Subs: Goss, Mere, Ritchie, Claasen, Pelembe, Motupa, Majoro.
Maritzburg: Ofori, Kunene, Xulu, De Reuck, Onyango, Makaringe, Zakri, Matsi, Ndlovu, Mokate, Figareido.
Subs: Mpandle, Timm, Sanoka, Shandu, Kutumela, Fileccia, Mekoa.