Jayawardene was unbeaten on 99 as Sri Lanka took their overnight total of 147-4 to 287-6 by tea on the second day at the Galle International Stadium.
Tillekeratne Dilshan made 84 in a fifth-wicket stand of 149 with Jayawardene, before England hit back with two unexpected scalps in the last over before tea.
Jayawardene patted a ball from Ravi Bopara and ran for a single that would have given him his 21st century, but Dilshan was unable to complete the run as Alastair Cook ran in from slip and broke the stumps.
Three balls later, Bopara dismissed wicket-keeper Prasanna Jayawardene for no score, caught behind by Matt Prior, as Sri Lanka slipped from a comfortable 287-4.
The late strikes made up for a bungling effort in the field by England, who dropped three catches and had one turned down by Australian umpire Daryl Harper.
Jayawardene, who took over from Sanath Jayasuriya as Sri Lanka's leading run-getter during his 195 in the drawn second Test, needs one more run to surpass Aravin