Latham was on 119 not out with Henry Nicholls on 35.
The visitors had declared their first innings closed at 595 for eight before lunch, shortly after Sabbir Rahman had brought up his second test half century.
Sabbir was 54 not out when captain Mushfiqur Rahim brought his side's innings to a close about an hour into the day's play.
Mushfiqur (159) and Shakib Al Hasan (217) had essentially batted New Zealand out of the test with a record partnership of 359 runs for the fifth wicket on Friday.
Bangladesh's total was their second highest in test cricket, having scored 638 against Sri Lanka at Galle in 2013.
Mushfiqur, who is also the wicketkeeper, did not take the field on Saturday after being struck in the hands twice while batting, with Imrul Kayes taking the gloves and Tamim Iqbal leading the side in his absence.
Tamim produced something of a surprise with off-spinner Mehedi Hasan opening the bowling and while he got some drift in the blustery northerly wind and some turn from the Basin Reserve wicket he was unable to make an early breakthrough.
Latham and Jeet Raval (27) put on 54 for the first wicket before Kamrul Islam had Raval caught by Imrul just before the lunch break.
Captain Kane Williamson looked keen to get his side scoring quickly in an effort to drive the game on after the break as he raced to his 25th half century, but fell shortly afterwards for 53 when he became Taskin Ahmed's first test wicket.
Ross Taylor continued the counter-punching approach with six boundaries in his first 27 runs from 17 balls but he had slowed down when he became Kamrul's second wicket, holing out to square leg for 40 to leave New Zealand on 205 for three.
Nicholls and Latham, who brought up his century with three runs off his hip, then safely negotiated the rest of the day.
Jeet RavalKane WilliamsonMushfiqur RahimNew Zealand vs Bangladesh 2016-17ross taylorshakib al hasantom latham
First Published: January 14, 2017, 11:43 AM IST