Alastair Cook missed out on his 20th test century by six runs as England remained poised for a big first innings total in reply to Sri Lanka's 275 on the third day of the second test on Thursday.
At lunch, the visitors were 239 for two, trailing by 36, with Jonathan Trott (62) and Kevin Pietersen (18) at the crease.
Sri Lanka's only success of the morning came when Cook's five-and-a-half hour vigil at the crease was ended by part-time off-spinner Tillakaratne Dilshan, who also dismissed captain Andrew Strauss on Wednesday.
Cook pushed forward to a delivery from Dilshan but failed to get to the pitch of ball and the resulting edge was held by Sri Lanka captain Mahela Jayawardene at the lone slip position.
The left-hander's watchful knock of 94 lasted 278 balls, during which he hit nine fours. Cook had also missed a century against Sri Lanka at Lord's last year when he was dismissed for 96.
Cook and Trott, who had scored a valiant century in England's loss in the Galle test, added 91 for the second wicket.
Sri Lanka, who lead the two-match series 1-0, used up both their reviews unsuccessfully before they had taken the second new ball after 80 overs.