He got going in a Richard Gleeson over that cost 22 runs, a flick over midwicket for six, two hits down the ground for four and a flick wide of short-fine leg.

South Africa's Rory Kleinveldt replaced Gleeson and he too gave up an over costing 22 as Guptill went to fifty in 20 balls.

Guptill swept left-arm spinner Graeme White to deep-backward square leg, only for Seekkuge Prasanna to step over the boundary before a second slog-sweep cleared deep midwicket.

Later, he drove Prasanna over long-on for six and wide of long-off for four as Guptill went to 90 before Kyle Coetzer was straight driven for four and flicked over midwicket for six to bring up the batsman's century.

But trying to lift Gleeson over mid-on, he was well caught by Josh Cobb but by then the game was almost won.