Tillakaratne Dilshan and Thilan Samaraweera scored centuries as Sri Lanka piled up 449 runs for seven wickets against Bangladesh at close of play on the opening day of the second and final Test on Tuesday.
Chaminda Vaas was unbeaten on 61 and Muttiah Muralitharan was on 24 not out.
Bangladesh grabbed the early initiative, reducing Sri Lanka to 48-4 after the first hour, thanks to some intelligent swing bowling from Syed Rasel and Shahadat Hossain
Dilshan and Samaraweera then came to Sri Lanka's rescue with a 280-run partnership.
In a brilliant batting performance, Dilshan stroked an aggressive 168 from 179 balls with 19 boundaries and one six before being caught behind off medium pacer Aftab Ahmed.
Samaraweera played a supportive role, starting aggressively and then dropping anchor while Dilshan ran amok, to finish with 138, including 20 boundaries.
Vaas added 69 for the sixth wicket with Samaraweera, who chipped a catch to mid-wicket. Rangana Herath (one) was then trapped lbw in the next over.
Hossain had triggered the early collapse by Sri Lanka when he produced a perfect outswinger that found the outside edge of Marvan Atapattu's bat (11).
Rasel then trapped Sanath Jayasuriya lbw for 13, ending the 36-year-old opener's hopes of marking his 100th Test with a big score.
Jayasuriya, the first Sri Lankan in history to reach the milestone, was presented with an award before the start of play by former captain Arjuna Ranatunga.
Sri Lanka's problems deepened when both Jayawardene (2) and Sangakkara (5) were bowled by inswingers.
Hossain and Rasel finished the day with three wickets each.
Sri Lanka won the first Test by an innings and 96 runs.
Scorecard
Sri Lanka (1st innings):
S. Jayasuriya lbw Rasel 13
M. Atapattu c Mashud b Shaha. Hossain 11
K. Sangakkara b Rasel 5
M. Jayawardene b Shaha. Hossain 2
T. Samaraweera c Nafees b Rasel 138
T. Dilshan c Mashud b A. Ahmed 168
C. Vaas not out 60
R. Herath lbw Shaha. Hossain 1
M. Muralitharan not out 24
Extras: (b-4, lb-10, nb-11, w-1) 26
Total: (for 7 wickets, 90 overs) 448
Fall of wickets: 1-28, 2-28, 3-33, 4-48, 5-238, 6-397, 7-400
To bat: D. Fernando, L. Malinga
Bowling: Rasel 20-2-125-3 (nb-5, w-1), Shaha. Hossain 19-3-103-3 (nb-2), A. Ahmed 8-2-33-1, Rafique 23-1-92-0 (nb-1), Haque Jnr 18-2-70-0 (nb-3), Ashraful 2-0-11-0.