Northern Districts youngster Kane Williamson joined Guptill at the crease and the pair went about setting the platform for a massive New Zealand total as they added a constructive 75-run partnership for the second wicket.
Williamson was run out for 49 and the loss of the 21-year-old brought skipper Ross Taylor to the crease and he and Guptill laid on 132 runs for the third wicket.
Taylor, 27, finished up unbeaten on 76, but the day belonged to Guptill, who was dismissed late in the day by part-time bowler Hamilton Masakadza, who claimed only his fourth test wicket with the scalp of the right-hander.
"It was a bit of a relief really. It's been a year and a half since my last test hundred,'' Guptill told APNZ from Zimbabwe.
"I'm just riding the wave as it goes. They bowled really well to us today.''
Guptill's century was the second of the tour for him, following his 105 in the second one-day game between the sides.
After Guptill departed, Taylor was joined at the wicket by BJ Watling, who is playing only his sixth test match.
New Zealand have gone in to the game light on seam bowling with Chris Martin, who is set to claim his 200th test wicket this week, and Bracewell as the only pacemen.
Spinners Jeetan Patel and Daniel Vettori will have to get through a bulk of the overs, while part-timer tweakers Guptill and Williamson will no doubt put their hand up to be given a bowl when Zimbabwe bat.
Day two is well set up for Taylor and Watling to put on a big partnership and push the Kiwis through to a position where they can set up an innings victory.
"We are definitely looking at 450-500,'' Guptill said.
"If we can get that it's going to be very difficult for them to put pressure on us to bat again.''
SCOREBOARD
New Zealand 1st Innings
Martin Guptill c Taibu b Masakadza 109
Brendon McCullum b Jarvis 14
Kane Williamson run out Price 49
Ross Taylor not out 76
BJ Watling not out 16
Extras: (7b, 1lb, 2w, 1nb) 11
TOTAL: (for 3 wickets) 275
Overs: 90.
Fall of wickets: 1-40, 2-115, 3-247.
Still to bat: Dean Brownlie, Daniel Vettori, Reece Young, Doug Bracewell, Jeetan Patel, Chris Martin.
Bowling: Kyle Jarvis 18-5-53-1 (1nb, 1w), Njabulo Ncube 16-2-50-0, Chris Mpofu 20-3-68-0 (1w), Ray Price 26-2-75-0, Hamilton Masakadza 7-3-13-1, Malcolm Waller 3-0-8-0.
Zimbabwe: Brendan Taylor (captain), Vusi Sibanda, Tino Mawoyo, Hamilton Masakadza, Tatenda Taibu, Malcolm Waller, Regis Chakabva, Ray Price, Kyle Jarvis, Chris Mpofu, Njabulo Ncube.
Toss: New Zealand.
Umpires: Marais Erasmus, South Africa, and Bruce Oxenford, Australia.
Third umpire: Jeremiah Matibiri, Zimbabwe. Match referee: Chris Broad, England.