The goals game from Sipho Mngomezulu, Bryce Aka and Fadlu Davids for Maritzburg, while Tsepo Bulu and Jonathan Quartey scored for Chiefs.
Quartey also had a late penalty saved by Maritzburg keeper Hunter Gilstrap.
The game was extremely bad-tempered. Bulu was taken off in the 72nd minute with a suspected broken nose after being elbowed in the face by Gary Goldstone, for which Goldstone was warned but not sent off.
Maritzburg coach Gordon Igesund was sent off in the 90th minute for leaving his area, and Chiefs coach Muhsin Ertugral walked out of the post-match press conference after disagreeing with Maritzburg United assistant coach Clinton Larson.
Chiefs struck first in the sixth minute, when Gert Schalkwyk robbed Tony Tsabedze in the middle of the park, and put Bulu through for a one-on-one with Maritzburg keeper Gilstrap. Bulu beat the keeper and hit home into an open goal to make it 1-0 to the visitors.
In first half injury time Mngomezulu took a corner short to Tsabedze, who sent the ball back to Mngomezulu to shoot from the edge of the area. Chiefs keeper Itumeleng Khune looked to have it covered, but the ball went in through his hands and in to the back of the net. One-all.
In the 48th minute Tsabedze, from the middle of the park, sent a ball through to Davids on the right, who beat Jimmy Tau and squared to Aka in the middle. Aka shrugged off Quartey and finished past Khune to make it 2-1 to Maritzburg.
In the 71st minute Mandla Masango had a header saved by Gilstrip, and the ball fell for Quartey to hit home and even things out for Chiefs.
But it wasn’t long before Maritzburg were back on top, with more fine work from Mngomezulu, who made a great run down the right before crossing in for Davids to hit home from two metres out in the 85th minute.
In the 88th minute Chiefs were awarded a penalty after a push by Goldstone in the box, but Quartey had his effort saved by Gilstrap, and the game ended 3-2 to the home side.