Sri Lanka were 500-4 in their first innings at close of the third day's play in the third and final Test against Bangladesh at the Asgiriya stadium here on Friday.
Sri Lanka, who bowled out Bangladesh for 131 on Thursday, lead by 369 runs with six wickets in hand.
Kumar Sangakkara remained unbeaten on 222, his second successive double century, and captain Mahela Jayawardene hit 165 during a third wicket stand of 311 runs.
Earlier, Jayawardene and Sangakkara plundered the Bangladeshis.
Both the batsmen took advantage of two rain-free sessions to put on 311 runs for the third wicket and lift Sri Lanka towards a big first innings total.
Left-handed Sangakkara followed up his unbeaten double century in the second Test. He has so far hit 28 boundaries in his 14th Test hundred.
Jayawardene, who made 127 in the first Test, survived a confident leg-before appeal on zero. His eighth Test century was studded with 15 fours and three sixes. Sri Lanka, seeking a 3-0 sweep of the series after winning the first two Tests, recovered ground after frustrating rain interruptions on the previous two days restricted play to only 57.3 overs.