The spin-pace duo of Dilruwan Perera (5-109) and Suranga Lakmal (3-39) ran through Bangladesh's middle and lower order to secure Sri Lanka's second highest Test win by an innings that came an hour after the lunch break on the fourth day.
Resuming on 35-1, still needing 463 runs to avoid an innings defeat, Bangladesh's batsmen surrendered without a fight, adopting an aggressive approach that meant runs flowed and wickets tumbled at regular intervals.
For them, Mominul Haque top-scored with a brisk 50 but could not stretch the game into the fifth day.
The hosts, who virtually lost the match when they conceded a mammoth 498-run first innings lead, began on an ominous note, losing overnight batsman Shamsur Rahman (9) to the second delivery of the day, sent down by Shaminda Eranga.
An undeterred Mominul and Shakib Al Hasan (25) still went for their strokes in their 52-run stand before Perera, playing only his second Test, separated them by trapping Shakib leg before.
Mominul perished in the same fashion but Bangladesh's resistance effectively ended when Perera bowled rival skipper Mushfiqur Rahim (14) through the gate.
Sri Lanka came close to bettering their previous biggest victory margin that came 10 years back when they beat Zimbabwe by an innings and 254 runs.
Chittagong hosts the second Test from Tuesday.
Scorecard:
Bangladesh (1st innings): 232
Sri Lanka (2nd innings): 730-6 declared
Bangladesh (2nd innings): (overnight 35-1)
Tamim Iqbal c Perera b Herath 11
Shamsur Rahman c Chandimal b Eranga 9
Marshall Ayub c Silva b Lakmal 18
Mominul Haque lbw Perera 50
Shakib Al Hasan lbw Perera 25
Mushfiqur Rahim b Perera 14
Nasir Hossain c Herath b Perera 29
Sohag Gazi lbw Lakmal 23
Robiul Islam lbw Lakmal 1
Rubel Hossain c Silva b Perera 17
Al-Amin Hossain not out 32.
Extras: (b-9, lb-10, nb-2) 21
Total: (all out, 51.5 overs) 250
Fall of wickets: 1-15, 2-35, 3-50, 4-102, 5-133, 6-150, 7-183, 8-197, 9-197;
Bowling: Lakmal 14-4-39-3 (2nb), Eranga 6-1-26-1, Herath 9-3-47-1, Perera 19.5-0-109-5, Mathews 3-0-10-0.
Image: Sri Lanka fielders congratulate Dilruwan Perera (centre) after he dismissed Bangladesh's Mominul Haque on the fourth day of the first Test in Dhaka.
Photograph: Andrew Biraj/Reuters
Can Team India put an end to their ODI misery?
No major problem in our batting and bowling, says Ravindra Jadeja
Did Dhoni's bizzare selections cost India in New Zealand?
Sunil Gavaskar: Opening with Kohli was a little strange
IPL auction: Sehwag, Yuvraj's base price at Rs 2 crore, Pujara at 1.5 cr