Captain Mahela Jayawardene compiled a patient 136 to put Sri Lanka in a strong position at the close of the second day of the first Test against West Indies in Georgetown, Guyana, on Sunday.
Sri Lanka declared at 476 for eight midway through the final session of the day and then claimed the prize wicket of West Indies captain Chris Gayle as West Indies finished on 29 for one at the close.
Opener Devon Smith was on eight after struggling against the Sri Lanka bowlers and Ramnaresh Sarwan, returning to the team after a prolonged injury absence, was on 21.
Jayawardene curbed his natural attacking instincts on a slow pitch during a disciplined innings that spanned 234 deliveries and included 13 boundaries.
The right-hander, Sri Lanka's highest run scorer ever, added 54 for the sixth wicket with wicketkeeper Prasanna Jayawardene (21) and then shared a 126-run stand with Chaminda Vaas (54 not out).
It was Jayawardene's 22nd Test hundred and his third in consecutive matches after twin centuries against England in December.
Sri Lanka resumed in the morning on 269 for four but were soon pushed onto the backfoot as Jerome Taylor won a debatable lbw decision against Tillakaratne Dilshan (20).
However, the West Indies, who persisted with the old ball throughout the morning, were unable to make any further inroads until after the lunch interval.
Fast bowler Darren Powell, armed with the second new ball, bowled Prasanna Jayawardene for 21.
The hosts should have then claimed the wicket of Vaas, on four, but Devon Smith spilled a catch at third slip off Taylor.
Jayawardene and Vaas then extended their partnership until after tea before wickets fell as they started to search for quick runs before a declaration.
Jayawardene's marathon innings finally came to an end when he was adjudged lbw after being hit on the glove trying an ambitious reverse sweep.
Taylor was again the most successful bowler, claiming four for 110.
Vaas quickly justified the evening declaration by pinning Gayle lbw for a duck.
Sri Lanka first innings
M. Vandort lbw b Taylor 52
M. Warnapura c Ramdin b Bravo 120
K. Sangakkara c Smith b Taylor 50
M. Jayawardene lbw b Gayle 136
T. Samaraweera c sub b Taylor 0
T. Dilshan lbw b Taylor 20
P. Jayawardene b Powell 21
C. Vaas not out 54
T. Thushara c sub b Gayle 0
R. Herath not out 13
Extras (7-lb, 1-w, 2-nb) 10
Total (eight wickets declared, 162 overs) 476
Fall of wickets: 1-130 2-205 3-243 4-243 5-277 6-331 7-457 8-459
Bowling: D. Powell 29-3-89-1, J. Taylor 33-8-110-4, C. Gayle 27-4-66-2, D. Bravo 30-3-74-1 (2-nb, 1-w), S. Benn 40-6-120-0, R. Hinds 3-0-10-0
Did not bat: M. Muralitharan
West Indies first innings
C. Gayle lbw b Vaas 0
D. Smith not out 8
Ramnaresh Sarwan not out 21
Total (one wicket, 16 overs) 29
Fall of wicket: 1-4
Bowling: C. Vaas 5-2-10-1, T. Thushara 4-2-2-0, T. Dilshan 1-0-2-0, M. Muralitharan 3-0-10-0, R. Herath 3-1-5-0
To bat: M. Samuels, S. Chanderpaul, R. Hinds, D. Bravo, D. Ramdin, S. Benn, J. Taylor, D. Powell