Mohau Mokate bagged a second-half brace to go with goals from Pogiso Sanoka and substitute Siphesihle Ndlovu for the Team of Choice, who failed to score in their previous eight games.
Sibusiso Masina opened the scoring for the Citizens in the 17th minute with a powerful header from a corner.
Moments later, Bevan Fransman almost leveled matters but his effort was cleared off the line.
Maritzburg went on a swift break with Mokate’s shot at goal flying inches wide after 30 minutes.
Benni McCarthy's charges took a slender lead into the halftime break.
Fadlu Davids made a double change at the beginning of the second half with Evans Rusike andNdlovu replacing Yazid Atouba and Denis Weidlich respectively.
United got out the blocks with intent as Sanoka equalised in the 55th minute.
Ten minutes later Mokate made it 2-1 for Maritzburg after a well orchestrated counter-attack to complete the turnaround.
United burst forward on another counter which ended in a goal by Mokate four minutes later, 3-1.
City then profited from a Fransman own goal to cut the deficit to one goal two minutes from time.
However, Ndlovu killed off the game as a contest in stoppage time to make it 4-2.