Bangladesh took a 192-run lead into their second innings having won the toss and posted 468. In reply, Zimbabwe collapsed after Takudzwanashe Kaitano (83) fell and made 276.
The only wicket of the first session came from the second ball of the 30th over when new cap Dion Myers reacted quickly to take a two-hand catch at gully after a reckless cut from Saif.
Shadman scored at a rate of one run per two balls and struck seven fours. Najmul was quicker, needing just 58 deliveries to amass his total.
Bangladesh are touring Zimbabwe for the first time since 2013 and will also play three one-day and three Twenty20 internationals, all behind closed doors in Harare because of the coronavirus pandemic.
Bangladesh 468 and 169-1 (Shadman Islam 72 not out, Najmul Hossain Shanto 47, Saif Hassan 43) vs Zimbabwe 276 (T. Kaitano 87, B. Taylor 81; Mehidy Hasan Miraz 5-82, Shakib al Hasan 4-82)