Former Bangladesh skipper Shakib picked up openers Peter Fulton (14) and Hamish Rutherford (13) before lunch and added the wicket of captain Brendon McCullum (11) in the afternoon.
Williamson retired hurt with a swelling on his face, hit on the helmet grill while trying to duck under a Rubel Hossain bouncer, but to New Zealand's relief he returned to the crease at the fall of McCullum's wicket.
Earlier, left-arm paceman Neil Wagner snared three to add to his overnight tally and complete his first five-wicket haul in tests as Bangladesh were all out for 282 after resuming on 228 for five in the morning.
Wagner, who replaced spinner Bruce Martin for the second test, picked up the wickets of captain Mushfiqur Rahim, Sohag Gazi, the centurion in the last test, and Rubel.
Young leg spinner Ish Sodhi picked up the remaining two wickets to fall to take his innings total to three.
The first match of the two-test series ended in a draw.
(Writing by Sudipto Ganguly; editing by Patrick Johnston)
Share
