Williams hit 105 to guide Zimbabwe to 250 all out before Afghanistan — trailing by 119 — were bowled out for 135 in their second innings.
That left Zimbabwe to score 17 runs which they got without any loss to end the match inside two days.
SCORECARD: Zimbabwe vs Afghanistan, 1st Test
Afghanistan were bowled out for 131 in their first innings.
Lanky pacer Muzarabani finished with 2-14 — six wickets in the match — while his new ball partner Nyauchi took 3-30, also getting six in the match.
#1stTest | Day 2️⃣ | 🇿🇼 have gone 1-0 up in the series!Full scorecard 👇#AFGvZIM | #VisitZimbabwe |… https://t.co/qtlgi0szKF
— Zimbabwe Cricket (@ZimCricketv) 1614777434000
Afghanistan were facing an innings defeat at 81/7 but opener Ibrahim Zadran fought hard during his 76 — his second half century — and added 48 for the eighth wicket with Amir Hamza who remained 21 not out.
Zadran batted for three hours and hit ten boundaries.
This becomes Afghanistan’s third defeat in five Tests since gaining status to play the five-day format in 2017.
The writing was very much on the wall when Nyauchi had Abdul Malik in the second over for a duck for batsman’s pair on debut.
Zimbabwe wrap up a 10-wicket win! They knock off the 17-run chase late on the second day against Afghanistan to t… https://t.co/7EHtw7OXxj
— ICC (@ICC) 1614776231000
Nyauchi then had Rahmat Shah (zero) and Hashmatullah Shahidi (four) while Muzarabani had Munir Ahmad (one) and rival skipper Asghar Afghan (14) to leave Zimbabwe rocking at 47/6.
Nyuaci’s previous best of 3-69 was on his debut against Sri Lanka at Harare last year.
Earlier, resuming at 133/5, Zimbabwe added 117 more runs to gain crucial lead.
Williams, who resumed on 54 lost his overnight partner Ryan Burl for eight but then found an able partner in Regis Chakabva (44) as the duo added 75 for the seventh wicket.
Williams completed his third Test century, and second in successive Tests, soon after lunch with a single to square leg.
But he fell while flicking spinner Amir Hamza straight to mid-wicket.
Williams had 10 boundaries while Chakabva smashed a six and six boundaries.
Left-arm spinner Hamza finished with career-best figures of 6-75 — his second five-for in Tests after his 5-74 against West Indies at Lucknow in 2019.
The second Test starts on March 10, also in Abu Dhabi.