Pirates' goals came from Dikgang Mabalane, Ezenwa Otorogu and an own-goal from Mor Diouf.
Ernst Middendorp and substitute Felix Obada were both sent off, Obada for an elbow to Clifford Ngobeni's chin.
Despite the scoreline, Maritzburg were unlucky as they played well, although credit to Pirates for taking their chances and putting the goals away well.
Maritzburg started superbly – neat touches, clever passing and confidence going forward evidence of a team unbeaten in six games.
The first shot on goal came from Diyo Sibisi, but his third minute effort was struck straight at Moeneeb Josephs.
Bucs looked somewhat rattled at the back and after John Arwuah tested Josephs with a well-executed 10th minute snap shot, the same player was unlucky to see his shot deflected wide of goal six minutes later.
Pirates took the lead against the run of play, Mabalane sweeping home at the back post after Daine Klate had flicked on a cross from Otorogu.
The goal knocked the wind out of Maritzburg’s sails and from that point onwards Pirates were very much back in the contest.
Andile Jali could have made it 2-0 after 30 minutes when the ball fell kindly to him on the edge of the box, but his shot was dismal.
Bevan Fransch provided a moment of hope, but fired over the bar, while Musa Nyatama’s great skill and positive run set up a chance for Sibisi, but he also couldn’t test Josephs.
Pirates then doubled their lead in the 43rd minute, Ortorogu taking advantage of some slack marking to head home Mabalane’s pin-point cross.
Middendorp was asked to leave the field shortly before the end of the first half, after being extremely vocal in his protestations against referee Daniel Bennett's decisions.
Rooi Mahamutsa went close with a shot from the edge of the area three minutes after the break, but United then took the fight to Pirates, earning a succession of free kicks within 30-yards of goal.
Diouf was unlucky not to score with one of these, with 54th minute thunderbolt clearing the bar by the smallest of margins.
But following that early burst, United found it increasingly to break down or create openings against the Buccaneers defence.
Patrick Malokase could have got his name on the score-sheet in the 81st minute, but reacted too slowly to Mabalane’s miss-hit shot.
United were then reduced to 10 men when Obada was sent off after his trailing arm caught Ngobeni in the face.
And with two minutes to go a forgettable afternoon was completed for the Pietermaritzburg side when Diouf deflected a cross into his own goal.