The visitors were 9 runs behind at the start of play on the fourth day on Saturday, but passed Bangladesh’s first innings total of 513 in the third over.
At the end of 145 overs, Sri Lanka’s score was 519-3, with Roshen Silva (94*) and captain Dinesh Chandimal (45*) at the crease.