Guptill went within a whisker of breaking the world record for the fastest ODI 50 and was close to scoring one of the fastest centuries when New Zealand wrapped up the game.
New Zealand captain Brendon McCullum said Guptill was "superb" while Sri Lanka skipper Angelo Mathews described his side's performance as "embarrassing" and "pathetic".
After being dropped off the first ball he faced, Guptill went on the warpath with a brutal assault that included nine fours and eight sixes.
Instead of getting better they went backwards, being dismissed for 117 in 27.4 overs.
Also Read
"It was embarrassing. Once again a pathetic display by the whole batting unit," Mathews said.
"We just couldn't handle it. It didn't swing or seam or bounce. It was just bad shot selection."
Guptill set about demolishing the Sri Lanka attack.
He took 14 off one over by Nuwan Kulasekera and 26 off the next over from Dushmantha Chameera as he raced to 46 from 12 deliveries.
"I got a couple of yorkers and couldn't quite get it. But I'll take the not out and a win than the fastest 50 and getting out," he said.
- 'Good for batting' -
======================
McCullum did not open the New Zealand innings after injuring himself when he crashed into the fence while trying to cut off a boundary.
Instead Tom Latham took up the opening duties and hit the winning run to be unbeaten on 17 from 20 balls while Guptill had faced 30 for his 93 not out.
Monday's entire game took exactly 36 overs for New Zealand to go 2-0 up in the five-match series.
When he won the toss and elected to bat, Sri Lanka's Mathews described the pitch as "good for batting".
But his batsmen were unable to handle Matt Henry, New Zealand's chief destroyer in the first match who again took four wickets.
He struck first in the fourth over when Tillakaratne Dilshan was caught at first slip by Ross Taylor for seven, and the wickets tumbled regularly from there.
Kulasekara, who struggled at the start of his innings when he was dropped twice and won an appeal against an lbw decision, went on to top-score for Sri Lanka with 19.
For New Zealand, Henry took four for 33 and Mitchell McClenaghan three for 32.