Muzarabani finished with 4-48 and his new ball partner Victor Nyauchi took 3-34 as Afghanistan — who won the toss and batted on a seamer-friendly pitch — were dismissed for just 131.
At close, Zimbabwe were 133-5 with Williams not out on 54 and Ryan Burl on eight not out. They lead by two runs with five wickets intact on a day that saw 15 wickets fall.
Afghanistan’s Asghar Afghan. AFP
Afghanistan started the two-match series on a wrong note when their ace spinner Rashid Khan was ruled out of the Test with a fractured finger he suffered in the Pakistan Super League last week.
Then their batsmen fell at regular interval.
Muzarabani, released from his Kolpak contract with Northamptonshire last year, struck with the very first ball of the match, bowling debutant Abdul Malik from an inside edge.
The lanky bowler then had Rahmat Shah (six) in his next over to leave Zimbabwe at 8-2.
Ibrahim Zadran (31) and Munir Ahmad (12) added 29 for the third wicket before Nyauchi dismissed both to further push Afghanistan hard.
Afsar Zazai top-scored with a patient 37 with six boundaries while skipper Asghar Afghan (13) and Amir Hamza (16) were the only other batsmen to reach double figures.
That barely helped Afghanistan avoid their lowest Test score of 103 against India in their inaugural match at Bengaluru in 2018.
Afghanistan’s left-arm spinner Amir Hamza, opening the bowling as they entered the Test with just one seamer, hit four crucial blows to end the day with 4-61.
At 4-38, Zimbabwe were losing track but Williams added 71 for the fifth wicket with Sikandar Raza, who scored an attractive 43.
Williams has five boundaries in his knock.
With inputs from AFP