Afghanistan stumbled quickly, losing Ibrahim Zadran for a duck off the first ball of the innings
Bangladesh crushed Afghanistan by 546 runs to secure the biggest Test victory margin by runs in nearly 90 years after Taskin Ahmed saw off the tourists with a career best 4-37.
The Dhaka match ended in the extended opening session of the fourth day after a Taskin bouncer hit Zahir Khan, forcing the final batsman to retire hurt.
The visitors barely made a dent in their mammoth case of 662, giving the hosts the biggest Test win by runs since Australia's 562-run victory over England in 1934.
It was more than double Bangladesh's previous record of 226 wins over Zimbabwe at Chittagong in 2005.
The home side's triumph was all but guaranteed after they declared their second innings at 425-4 in Friday's final session.
Afghanistan stumbled quickly, losing Ibrahim Zadran for a duck off the first ball of the innings and resuming on Saturday at a precarious 45-2.
Afghanistan could show little improvement on the fourth day and lost wickets at regular intervals, with Taskin and Shoriful Islam leading Bangladesh's way.
Taskin was denied his maiden five-wicket haul when he bowled last man Zahir Khan in the 33rd over of the innings, only for the umpire to signal a no ball.
Afghanistan lost a wicket in the third over of the morning when Nasir Jamal edged Ebadot Hossain behind the stumps for six.
Shoriful, who claimed 3-28, forced Afsar Zazai to give a catch to Mehidy Hasan at gully five overs later, also after he made six runs.
It brought Bahir Shah to the crease as concussion sub for skipper Hasmatullah Shahidi, who retired hurt after he was hit by a bouncer of Taskin on the third day.
But Bahir also failed to survive long as Taskin forced him to give a catch to Taijul Islam at slip for seven.
Liton Das brought an end to Rahmat Shah's dogged innings of 30 from 73 balls with a catch behind the stumps off Taskin.
Karim Janat showed some aggression, hitting two sixes before Taskin bowled him for 18.
Spinner Mehidy Hasan joined the act by removing Amir Hamza for five to leave Afghanistan eight down, and Taskin did the rest.
Bangladesh made 382 runs on a green wicket in the first innings and bowled out Afghanistan for 146 to take a 236-run lead.
Afghanistan won the only other Test between the two teams when they beat Bangladesh by 224 runs at Chittagong in 2019.