On a Dunedin pitch said to be ripe for seam bowlers, New Zealand responded to losing the toss by amassing 409 for eight.
Opener Guptill contributed 156 before he fell just before stumps, the ever-reliable Kane Williamson made 88 and Brendon McCullum 75 as New Zealand exposed the rawness of the Sri Lanka line-up.
The green wicket suggested bowlers would rule but when Sri Lanka captain Angelo Mathews won the toss and made New Zealand bat he was let down by his attack.
There were only seven maiden overs bowled and New Zealand cracked 57 fours, of which Guptill contributed 21.
Also Read
His third century came 41 innings and four years after he last posted three figures against Zimbabwe and he was dismissed 33 runs short of his highest score, 189 against Bangladesh in 2010.
Inconsistent form saw him out of the Black Caps for two years before the short-form of the game resurrected his career when he played a starring role in the World Cup earlier this year.
In an innings filled with elegant shots, he used the same front foot stroke to bring up his 100 when he drove Suranga Lakmal to the boundary.
There were a few chances -- two shaky edges and a near run out early in the innings and two lbw shouts on 78.
But with luck going his way, Guptill was able to carry
He was eventually undone six overs from stumps when Mathews swung the ball away from Guptill who feathered a catch to wicketkeeper Dinesh Chandimal.
Williamson fell on the last ball before tea, lashing out at a rough delivery from Nuwan Pradeep to be caught in slips by Dimuth Karunaratne reaching high above his head.
He left the ground requiring only eight more runs to become the fifth player to reach 1,000 runs this calendar year.
McCullum, who like Guptill failed to fire in Australia, also found the Sri Lankan attack more to his liking.
He reached 75 in 57 balls and belted 13 fours and a six before Mathews turned to Milinda Siriwardana, his seventh bowler for the day.
With his third delivery in his third Test, Siriwardana bowled full on the leg side and McCullum sent a top edge to Kithuruwan Vithanage at deep square leg.
For Sri Lanka, Suranga Lakmal took two for 69 while Nuwan Pradeep and 23-year-old Dushmantha Chameera, both finished with two for 101.