But he played with plenty of maturity on a day that belonged to the tourists, facing 211 deliveries for his unbeaten 70.
With him at stumps was captain Mominul Haque on eight.
New Zealand resumed in the morning at 258 for five and were all out for 328, their lowest score on a home wicket in nine Tests against Bangladesh.
Bangladesh then enjoyed ideal batting conditions as they made a solid reply.
They survived several near misses early in a test of concentration, but what began as a fight to survive gave way to an abundance of free-flowing shots by Shanto and Joy.
They put on 104 for the second wicket with Shanto bringing up his 50 with a huge six over the long-leg boundary.
He then played an audacious one-day stroke when he stepped away from a short Neil Wagner delivery, exposing all three stumps, and guided the ball past the close-catching cordon for four.
Wagner proved the most dangerous of the New Zealand bowlers and claimed the wicket of opener Shadman Islam for 22 with a diving catch after a low full toss was chipped back.
He then saw off Shanto with a succession of short deliveries before pitching up an outswinger which the batsman edged to Will Young in the gully.
He had struck Shanto on the body with his first ball to the new batsman and, when Joy was on 20, was frustrated by having an appeal for lbw turned down.
New Zealand decided not to review and ball-tracking technology indicated the ball would have hit the stumps.
When Joy was on 42, Wagner found the edge of the bat but the ball fell just short of the wicketkeeper.
New Zealand, having made a promising start to be 139 for one, fell apart on the second morning to be all out for 328 with only Henry Nicholls (75) showing any resistance.
Nicholls, along with Devon Conway (122), and Will Young (52) who were out on the first day provided all but 79 of the New Zealand total.
It was the Bangladesh spinners who did the damage on the second day.
Mehidy Hasan took three for three in the space of 21 deliveries while Mominul, a part-time spinner, removed Nicholls to go with the dismissal of Conway to lift his total career scalps to six in 48 Tests.
Of the recognised bowlers, Shoriful Islam finished with three for 69 and Mehidy took three for 86.