The Fijians, who were looking to secure back to back titles for the first time this season, had led 19-0 and looked to be cruising before the Blitzbokke launched their comeback, scoring two quick fire tries to force the game into extra time before scoring another to scoop the title.
Fiji, who won the previous leg in Sydney four weeks ago, had topped their pool after dispatching South Korea 45-7, France 33-28 and Argentina 28-14 on day one.
Gareth Baber's side then overpowered England 26-5 in the Cup quarter-finals before crushing Australia 43-7 in the semis.