South Africa's win moved them to within two points of New Zealand on the World Series standings. New Zealand leads with 58 points, South Africa has 56, Fiji 48 and England 40.
South Africa were 0-14 down after tries for New Zealand by Scott Curry and Sherwin Stowers. However, South Africa replied with Banco du Preez scoring two tries to go to half-time 12-14 behind.
But the only scoring action of the second half was a try scored by the home side's captain Kyle Brown.
Brown said afterward that it had been a very emotional weekend for the side in the week of the death of former South African President Nelson Mandela. The side had held on well in the final against New Zealand, especially mindful of the fact that two years ago in the final they lost in the dying seconds. South Africa hadn't won their home leg since 2008-09.
There had been cool heads at the end, he said and congratulate the players for their composure.
Coach Neil Powell for whom the victory was his first tournament win since taking over the side said it wan 'unbelievable feeling'.
"We wanted to be close at half-time because we knew we could win," he said
Home support had lifted the side especially through the dying moments when the pressure came on from New Zealand.
New Zealand qualified by beating Kenya in the quarter-finals 19-0. They only led 7-0 at the half-time break after a try to Ambrose Curtis which was converted by Tomasi Cama. Then three minutes into the second half Curry scored and Cama converted. Then, late in the game, Mikkelson rounded out the win with a try.
Cama scored all of New Zealand's first half points as they led Samoa 14-0 at the turnaround. Samoa scored when Stowers was sin-binned, three minutes after coming on as a substitute. But New Zealand countered with a Mikkelson try to claim the semi-final win 19-5.
South Africa qualified by beating Portugal 45-0 and Argentina 31-0.