Sri Lanka defeated Bangladesh by 259 runs in the first Test match at the Galle International Stadium here on Saturday.
Spinner Ragana Herath picked up 6 for 59 as Bangladesh were 197 all out in the chase of an improbable 457-run target to help the home side go 1-0 up in the two-match series, according to the International Cricket Council's (ICC) official website.
Resuming on 67 for no loss and needing 390 more runs for victory on the final day, Bangladesh lost overnight batsman Soumya Sarkar to the second ball of the morning and couldn't recover after that.
Soumya got a leading edge off the first ball from Asela Gunaratne. It landed safely. However, the next ball clipped the bails of his off stump to dismiss the left-hander on his overnight score of 53.
Perera then struck in consecutive overs, trapping Mominul Haque (5) leg-before before having Tamim Iqbal caught by Gunaratne at slip for 19.
Herath delivered further blows when he removed Shakib Al Hasan (8) and handed Mahmudullah a second-ball duck in the space of three balls in one over.
Shakib gloved a catch to Dimuth Karunaratne at leg slip while Mahmudullah was deceived by an arm ball, which hit his back foot, to be adjudged leg before wicket.
Skipper Mushfiqur Rahim and Liton Das shared 53 runs in a sixth-wicket stand to keep Bangladesh alive with news of storms in the area, and took them to lunch on 157 for 5.
However, Bangladesh once again stumbled after the interval, losing the last five wickets within an hour.
It started with Rahim gently tickling Lakshan Sandakan to the wicketkeeper down leg side off the second ball after lunch.
Heerath then followed it up with the wicket of Das, who was caught at cover off a leading edge trying to slog the Sri Lanka captain across the line.
The wicket was Herath's 363rd in Test cricket, going past Daniel Vettori's tally of 362. The rest of the game was just a matter of time.
Bangladesh were all out for 312 runs in the first innings in reply to Sri Lanka's 494, who later declared their second innings on 274/6.