South Africa, opting to bat first, were all out after scoring a low 188 runs from 46.5 overs. Rilee Rossouw was the top scorer with 61 runs from 83 deliveries which included two boundaries.
Proteas skipper AB de Villiers made 31 from 49 runs while opener Quinton de Kock and J.P. Duminy made scored 30 and 23 runs respectively.
Narine was the stand out for the West Indies as he took six wickets after conceding 27 runs in 9.5 overs. Carlos Brathwaite grabbed two wickets while Jerome Taylor and Jason Holder dismissed one South African batsman each.
The hosts, chasing 189 runs to win, reached the target in 48.1 overs with four wickets to spare. Kieron Pollard scored run-a-ball 67 runs with the help of two boundaries and six maximums.
Opener Johson and Darren Bravo contributed 31 and 30 runs respectively for the team as well.
Aaron Phangiso took two wickets for the South African team while Imran Tahir dismissed two batsmen.
Sunil Narine was named Player of the match due to his performance with the ball.