|Tough day in the fields for the England team [GALLO/GETTY]
Prasanna Jayawardene's patient century lifted Sri Lanka to 400 all out and England lost their captain Andrew Strauss to end the second day of the first Test on 47 for one on Friday in Cardiff.
Strauss was caught by Mahela Jayawardene at second slip off Suranga Lakmal for 20 in the day's final over, leaving Alastair Cook 24 not out and nightwatchman James Anderson on one.
It was a late blow for the home team as they replied to Sri Lanka's imposing total built round an innings of 112 by wicketkeeper Jayawardene who came to the crease with his team in potential trouble at 159 for four.
Sri Lanka opted to use him at number six for the first time having chosen five bowlers and he responded with a confident innings spanning more than four hours and including 12 fours.
Sri Lanka first innings
T Paranavitana b Tremlett 66
T Dilshan b Swann 50
K Sangakkara c Prior b Anderson 11
M Jayawardene c Strauss b Anderson 4
T Samaraweera c Swann b Anderson 58
P Jayawardene c Prior b Broad 112
F Maharoof run out 16
T Perera c Tremlett b Broad 25
R Herath c Trott b Swann 25
A Mendis not out 1
S Lakmal c Broad b Swann 2
Total (all out; 118.4 overs) 400
Fall of wickets: 1-93 2-114 3-133 4-159 5-243 6-278 7-346 8-397 9-397 10-400
England first innings
A Strauss c M Jayawardene b Lakmal 20
A Cook not out 24
J Anderson not out 1
Extras: (lb 1 nb 1) 2
Total: (for 1 wicket, 20 overs) 47
The world No. 3-ranked bowler Anderson completed figures of three for 66 but bowled just one over after tea before going off the field for treatment on a stiff back.
Off spinner Graeme Swann claimed three for 78.
England's bowlers toiled for much of the day as opener Tharanga Paranavitana took his overnight score to 66 and Thilan Samaraweera chipped in with 58.
Mahela Jayawardene failed to add to his overnight score of four but his namesake Prasanna looked comfortable, offering just one chance on 89 to Strauss at slip off Swann.
England's bowlers struggled on the flat pitch, though Anderson started well by having Mahela Jayawardene caught by Strauss at first slip.
That was 133 for three and left-hander Paranavitana played on to Chris Tremlett to make it 159 for four before Prasanna and Samaraweera added 84 for the fifth wicket.
Anderson struck again by removing Samaraweera with a perfect out-swinger that was caught by Swann at second slip and Farveez Maharoof was run out at the non-striker's end by the fingertips
of bowler Jonathan Trott to make it 278 for six.
Jayawardene added another vital 68 runs with Thisara Perera (25) before Perera was caught at mid-on and became Stuart Broad's 100th Test victim.
The 24-year-old was the second-youngest Englishman to reach the milestone, after Ian Botham.
England are looking to build on their recent Ashes success as they bid to become the top-ranked Test nation and the Sri Lankans are seeking a first Test win in six matches.