Opener Jeet Raval has struck his maiden Test century, while Tom Latham has posted his third 150-plus score in three matches for New Zealand who are in control of the first Test against Bangladesh in Hamilton.

The hosts were 4-451 at stumps on Friday's second day at Seddon Park, with captain Kane Williamson unbeaten on 93 and nightwatchman Neil Wagner one not out, having built an imposing 217-run first-innings lead.

Bangladesh had been dismissed in Thursday's final session for 234, with Tamim Iqbal scoring an aggressive 126. Wagner was the pick of the Black Caps' bowlers with 5-47.

Raval and Latham had resumed on Friday on 0-86 and continued to grind down the Bangladeshi bowlers through the morning session.

The 30-year-old Raval, who had scored seven half-centuries and had been facing questions as to when he would pass three figures, answered the doubters with successive boundaries off Ebadat Hossain about 15 minutes before lunch.

His fellow left-handed opener Latham, who was dropped by Soumya Sarkar on nought on Thursday, had to wait until after lunch to bring up his ninth century when he top-edged down to fine leg for his 12th boundary.

It continued a superb run of form for the 25-year-old, who was dismissed for 161 and has scored 611 runs in his four Test innings at home this summer at an average of 203. He also had scores of 264no and 176 last December against Sri Lanka.

Raval and Latham put on 254 for the first wicket, the third-highest opening partnership for New Zealand against any opposition.

Williamson brought up his 30th Test half-century with a punch to deep point for a single in the final session and appeared to be on course to join Raval and Latham with a ton.

Shortly before stumps, however, Henry Nicholls was dismissed surprisingly, not playing at an arm ball from Mehedy Hasan Miraz to be bowled for 53. Williamson avoided any risk to push on but looked well set for his 20th century on Saturday.