Moshiywa, who was third in 2011 and ninth last year, took the lead from countryman Johannes Kekana after four hours on the road, and charged ahead in warm conditions to secure a historic victory.
The last South African to win the men's "up" run was Jetman Msutu in 1992.
Zimbabwean Moses Njodzi, who won the Two Oceans Marathon in 2006, emerged as the first real contender, opening a one-and-a-half minute lead at the halfway mark, as he charged through Drummond in two hours, 40 minutes.
Njodzi faded quickly however, struggling up the steep Inchanga climb in the early stages of the second half, and he was passed by Moshiywa, Kekana, Zimbabwean Mike Fokoroni and little known Rufus Photo.
Photo fell behind soon after, and Fokoroni held on for a few kilometres before he too dropped back, leaving the South African duo to break clear after more than three hours on the road.
Kekana, a former All Africa Games marathon champion, slowly slipped back, and Moshiywa was eventually left on his own with a little less than 25km remaining.
He fastened his grip on the race in the closing stages and crossed the finish line in Pietermaritzburg more than nine minutes clear of Sweden's Jonas Buud, who produced a strong finish to take second place.
Mpesela Ntlosoeu of Lesotho finished in third position, a further two minutes behind, and defending champion Ludwick Mamabolo was fourth. – Sapa