Tillakaratne Dilshan scored his second century of the game and took 4-10 as Sri Lanka won the second Test with their highest winning margin.
Sri Lanka won by 456 runs, inflicting on Bangladesh their heaviest defeat.
Dilshan struck 143 as Sri Lanka took their overnight 296-4 to 447-6 - their declaration setting Bangladesh a mammoth 624 to win in Chittagong.
Bangladesh slumped to 52-5 and later collapsed from 144-6 to 158 all out as Dilshan dismissed the tail.
It ensured that Sri Lanka won the series 2-0 after their victory in the opening Test in Dhaka - and also surpassed their previous highest winning margin, a 315-run victory over Zimbabwe in 2002.
It was also the fifth highest winning run margin in the history of Test cricket.
Dilshan, who scored 162 in the first innings, was the star of the show in Chittagong.
Early on the fourth day he became the fourth Sri Lankan to score a century in both innings after he drove Shahadat Hossain past backward point for a boundary.
The 32-year-old, who was eventually bowled by left-arm spinner Enamul Haque, joins Duleep Mendis, Asanka Gurusinha and Aravinda de Silva in the history books.
Thilan Samaraweera had been the first wicket to fall on day four, lbw to left-arm spinner Shakib Al Hasan after adding five runs to his overnight 72.
606: DEBATE
Dilshan fell with the score on 396 and Sri Lanka batted until lunch before declaring.
Spinner Ajantha Mendis did the damage at the top of the Bangladesh order, claiming 3-23 in his first 10 overs to leave the home team reeling.
Imrul Kayes was caught at slip, Junaid Siddique fell lbw and Mohammad Ashraful edged to the keeper after failing to read a googly.
Only Mushfiqur Rahim (43) and Al Hasan (46) offered any serious resistance with their partnership of 92.
But once Al Hasan became Dilshan's first victim, stumped by Prasanna Jayawardene, the end was swift.
Later, Ashraful and Rahim were fined for breaches of the International Cricket Council's code of conduct following an incident on day three when Rahim's appeal for a catch off Mehrab Hossain Jr, against Dilshan, was turned down.
Rahim was fined 50% of his match fee, while Ashraful was fined 15% of his.
"Mushfiqur conceded in the hearing that it was unacceptable behaviour when he clearly left his position from behind the stumps, charged and ended up appealing some six metres away directly towards the umpire," match referee Jeff Crowe said.
"This sort of appealing is intended to place unnecessary pressure on the umpire and has no place in the game.
"Mohammad Ashraful is the captain and needs to lead with responsibility and patience when an umpire is making a decision.
"Having spoken to him earlier in the series about a similar reaction, he was fully aware of what was acceptable and therefore, pleaded guilty to the charge."
RELATED INTERNET LINKS:
Sri Lanka cricket
Bangladesh cricket
BBC Bengali Service
BBC Sinhala Service
BBC Asian Network sport
Scorecards on mobiles
Five Live cricket
Cricket debate on 606
Download our cricket masks
The BBC is not responsible for the content of external internet sites