Angelo Mathews top-scored with an unbeaten 85 on Sunday to put Sri Lanka in command of the third Test against Australia, as the hosts reached 428-6 at stumps on the third day.
Sri Lanka has a first-innings lead of 112 runs in reply to Australia's 316. DebutantShamindaEranga, who took 4-65 in the first innings, is also at crease, unbeaten on 5.
Though no one scored a hundred, captain TillakaratneDilshan (83), Kumar Sangakkara (79) and MahelaJayawardene (51) all got half-centuries as Australia tried to contain the runs.
Normally an opener, Dilshan dropped himself to No. 5 in the batting order and faced 131 balls, hitting 14 boundaries in an aggressive innings.
Dilshan shared 121 runs with Mathews for the second century-partnership of the innings, putting Sri Lanka in position for a series-leveling win.
Dilshan was finally out caught behind by Brad Haddin off seamer Trent Copeland (2-70).
Mathews then shared an 81-run sixth-wicket partnership with PrasannaJayawardene (47), before the latter was also dismissed by Copeland.
Earlier, Sri Lanka resumed the day on 166-2, and lost MahelaJayawardene caught behind by Haddin off seamer Shane Watson. He faced 120 balls and hit nine boundaries.
Peter Siddle (2-55) then snared Sangakkara in the same fashion after 176 balls and 10 boundaries.
Sangakkara and Jayawardene shared 101 runs for the third wicket.
The Australian bowlers toiled on a batting-friendly pitch without a wicket for most of the second session, with captain Michael Clarke even using part-time bowler and former captain Ricky Ponting.
Australia lead the three-Test series 1-0.