Southampton - Sri Lanka captain Kumar Sangakkara's maiden Test hundred in England helped the tourists save the series finale at the Rose Bowl here on Monday.
But a draw in the third and final Test gave England a 1-0 win in this three-match series after an innings and 14-run win in the first Test in Cardiff was followed by stalemate at Lord's.
Rain, which robbed the first Test ever staged at the Rose Bowl of 155 overs on the first three days, had the final say when a downpour during the tea interval on the fifth day brought this match to a premature close.
Sri Lanka were 334 for five in their second innings in reply to England's first innings 377 for eight declared, a lead of 141, having lost just two wickets on the last day.
One of those was Sangakkara, out shortly before tea for 119 when the left-hander's square cut off James Anderson was caught by substitute Adam Rouse at backward point.
His exit ended a fifth-wicket stand of 141 with Thilan Samaraweera, who was left stranded on 87 not out.
Sangakkara had managed just 65 runs in five previous innings this series but, leading Sri Lanka in the absence of the injured Tillakaratne Dilshan, he showed his class with a 25th Test century.
Sri Lanka resumed on Monday on 112 for three, 81 runs behind, with Sangakkara 44 not out and nightwatchman Rangana Herath unbeaten on two, in overcast, seam bowler-friendly conditions.
But Sangakkara, who averages over 56 in Tests, cover-drove fast bowler Chris Tremlett for four in the first over of the day.
Anderson nearly had Herath out for five but first slip Andrew Strauss was distracted by Graeme Swann, moving across from second slip, and the England captain dropped the fast-travelling chance.
When first-change Stuart Broad came on, Herath, primarily a left-arm spinner, pulled him for a well-struck boundary. Broad later twice left the field with a bruised left heel.
Herath was eventually out lbw on the backfoot to off-spinner Swann after missing a sweep for a gutsy 36.
Sri Lanka reached lunch on 226 for four, with Sangakkara 89 not out and Samaraweera 26 not out.
By that stage the 33-year-old Sangakkara, who resigned as Sri Lanka's captain after their World Cup final defeat by India in Mumbai in April, had surpassed his previous Test-best score in England of 66 at Trent Bridge five years ago.
England, though, were only one more over away from the new ball, which they took as soon as they could.
Sangakkara went into the 90s with a lucky four over the slips off Anderson before a comfortable single off Broad saw him to a hundred featuring 13 fours and spanning nearly five and a half hours after he came in at 25 for one.
England had built a strong position by bowling Sri Lanka out for just 184 in the tourists' first innings, with Tremlett, on the ground where he played for Hampshire before moving to Surrey last season, taking a Test-best six for 48.
Ian Bell's 119 not out - his second century of the series following his unbeaten 103 in Cardiff - helped give England a first innings lead of 193 and allowed Strauss to make an enterprising declaration.
England remained third in the ICC Test rankings - they would have gone joint second if they'd won - behind leaders India, their next Test opponents, and South Africa.
England and Sri Lanka now face each other in a Twenty20 match and five one-day internationals, starting with the Twenty20 contest in Bristol on Saturday, June 25.