After a lacklustre opening quarter, the home side finally broke the deadlock minutes before half time.
Defender Pogiso Sanoka found the breakthrough with a diving header after being set up by Bevan Fransman.
In the second half, it got worse for Siwelele when Mohau Mokate doubled Martizburg's lead a minute after the restart.
Midway through the second period, substitute Andrea Fileccia got his first goal of the season with his first touch of the game, beating a flat-footed Patrick Tignyemb at his near post.
Following a string of misses, Evans Rusike finally got his name onto the scoresheet minutes from time with a first-time volley.
The win takes them ahead of Kaizer Chiefs, who are in action on Saturday night.
In the other match, Ajax Cape Town returned to winning ways with a come from behind 3-1 win over Platinum Stars at the Cape Town Stadium.
Goals from Tercious Malepe, Tashreeq Morris and Tendai Morris cancelled out debutant Zama Rambuwane's opener for the Rustenburg-based side.