Sri Lanka scored 332 for one after electing to bat with Tillakaratne Dilshan unbeaten for 161 after an opening stand of 122 with Lahiru Thirimanne (52) while Kumar Sangakkara hit 105 not out in his 400th one-day international.
In reply, Bangladesh were bowled out for 240 with three overs left with Sabbir Rahman top scoring 53.