Kumar Sangakkara hit his maiden triple century and became the ninth batsman to 11,000 Test runs as Sri Lanka piled up 587 in their first innings on day two of the second Test against Bangladesh in Chittagong.
Sangakkara, on 160 overnight, was eventually last out for 319 in late afternoon after facing 482 balls, including 32 fours and eight sixes. Bangladesh finished the day 501 runs behind, reaching 86-1 in reply at stumps.
No 11 Nuwan Pradeep came to the crease with Sangakkara still 14 short of 300 and survived 22 balls for his four not out to see the left-hander through to the milestone, which he brought up with consecutive sixes off Shakib Al Hasan's bowling.
Left-arm spinner Shakib claimed three lbw victims earlier in the day - Dilruwan Perera, Ajantha Mendis and Suranga Lakmal - to finish with figures of 5-148.
Sri Lanka resumed on 314-5 and lost Kithuruwan Vithanage and Perera in consecutive overs on the way to 440-7 at lunch.
Mendis contributed 47 to a century stand for the eighth wicket before Shakib removed both him and Lakmal.
Sangakkara, who is now fifth on the all-time list of Test century makers with 34 alongside Sunil Gavaskar and Brian Lara, pressed on to become the 23rd man to score a Test triple hundred but holed out to Sohag Gazi at long-off from spinner Nasir Hossain's bowling when still 55 short of Mahela Jayawardene's Sri Lanka record score of 374.
The left Bangladesh the evening session and they lost opener Tamim Iqbal fourth ball duck, bowled by Lakmal (1-18).
Second-wicket pair Shamsur Rahman (45no) and Imrul Kayes (35no) resisted through to the close in a match Bangladesh need to win to claim a share of the two-match series having lost by an innings and 248 runs in Dhaka last week.