Liton was 135 not out and Mushfiqur, who scored 105 in the first Test, was on 115 after sharing a record 253 runs in an unbroken stand in Mirpur on Monday.
It was Bangladesh's highest sixth-wicket partnership, eclipsing the 191 by Mohammad Ashraful and Mushfiqur Rahim against Sri Lanka in 2007.
The only chance the tourists could create came when Liton on 47 offered a catch at backward square leg, which Kusal Mendis' substitute Kamindu Mendia failed to hold on to.
Mendis was taken to a hospital earlier because of chest pains.
Liton then hit Asitha Fernando for a boundary through the same region to raise his fifty off 96 balls. He then needed just 53 balls to complete his next fifty to reach his third century off 149 balls.
Mushfiqur, who became the first Bangladeshi batter to reach 5000 runs last week, was more restrained.
He brought up his half-century off 112 balls, also through a boundary from left-arm spinner Praveen Jaywawickrama's delivery.
Unlike Liton, his innings was completely chanceless and he raised his ninth ton off 218 balls with a single off Ramesh Mendis.
But it was a terrible start for Bangladesh, who opted to bat first after captain Mominul Haque won the toss.
Paceman Kasun Rajitha took a wicket with the second ball of the match to start a session of dominance for Sri Lanka.
Rajitha, who played part of the drawn first Test as a concussion substitute, returned figures of 3-43 and Fernando claimed 2-80.
Rajitha and Fernando removed openers Mahmudul Hasan and Tamim Iqbal for ducks as Bangladesh slumped to 2-6 in the second over.
Bangladesh captain Mominul Haque (9) extended his lean streak to six consecutive single-digit scores when he was caught behind off Fernando in the sixth over.
And when Rajitha took wickets with consecutive deliveries in the next over, bowling Najmul Hossain (8) and then trapping Shakib Al Hasan (0) lbw, Bangladesh slumped to 5-24.