Kumar Sangakkara slammed a run-a-ball 112, his 20th ODI ton, to set up Sri Lanka's series-clinching 90-run victory over England in the sixth one-day cricket international in Kandy.
The victory helped Sri Lanka take an unassailable 4-2 lead in the seven-match series with one more game to be played in Colombo on Tuesday night.
The in-form Sangakkara hit 12 fours and two sixes as Sri Lanka posted an imposing 292-7 before bowling out the visitors for 202 off 41.3 overs at Pallekele.
It was the 20th one-day century for the stylish left-hander, who is set to retire after the World Cup early next year.
Fast bowler Suranga Lakmal took a career-best 4-30 while Sachithra Senanayake picked 3-33.
England have now lost six of their past seven ODI series and nine of their past 12 ODI matches.
Joe Root top-scored with 55 after his side were off to a quick start, scoring 50 runs in the first 10 overs.
Root, fresh from his match-winning century in the last game, however got little help from the other batsmen.
Captain Alastair Cook's wretched form with the bat continued, making just one before being trapped leg before by Senanayake off the third ball of the innings.
Cook has scored just one half-century in his last 21 ODI innings. Earlier, in the day the skipper had dropped an easy catch off Sangakkara when the batsman was on 41.
Lakmal, returning to the side in place of Dhammika Prasad, dismissed Ravi Bopara and Eoin Morgan off the second and third balls of the 18th over.
But Jos Buttler survived the hat-trick ball with a firm push through mid-on for a boundary.
Sangakkara, playing his last international in his home town of Kandy, bid an emotional farewell to his adoring fans as he led the team off the field.