Dinesh Chandimal's unbeaten 105 saw Sri Lanka to a six-wicket one-day international victory against England at Lord's here on Sunday as the tourists took a 2-1 lead in the five-match series.
Sri Lanka, chasing 247 for victory, finished on 249 for four.
Chadimal secured the win, with 10 balls to spare, after flamboyantly going down on one knee to carve James Anderson over cover for four.
His innings was the 21-year-old Chandinal's second century in just six matches at this level and meant he'd converted both his fifties into hundreds.
England's total of 246 for seven, which featured captain Alastair Cook's career-best 119, never looked enough.
Their score was put into perspective by a Sri Lankan second-wicket stand of 112 between Chandimal and veteran opener Mahela Jayawardena, who made 79.
Jayawardena, whose career-best 144 set-up Sri Lanka's 69-run win at Headingley on Friday, was again in superb touch.
He uppercut Anderson for four in the first over of the tourists' reply before Sri Lanka captain Tillakaratne Dilshan was bowled for three by medium-pacer Tim Bresnan.
Jayawardena reached his fifty at Lord's in just 45 balls with seven fours.
Meanwhile an increasingly confident Chandimal audaciously flicked seamer Jade Dernbach over his shoulder for four and then thrashed him wide of midwicket for another impressive boundary.
But with Jayawardena on course for back-to-back hundreds, he cut a Dernbach long-hop straight to Eoin Morgan at point.
In all he faced 77 balls with nine fours.
Chamdimal himself continued on to a 73-ball fifty and later struck Anderson, England's spearhead, for six over midwicket.
He was dropped by leaping wicketkeeper Craig Kieswetter on 92 when he didn't get enough on an intended 'scoop' shot.
Their was a bizarre end to the match as Angelo Mathews, who took 21 balls for his one not out, 'nursed' Chandimal to his century.
But Chandimal went to his hundred in style, hoisting Bresnan for six over long-on to reach three figures in 123 balls, with two sixes and 10 fours.
Earlier, a fine Sri Lanka bowling effort saw leg-spinner Jeevan Mendis and seamers Lasith Malinga and Suranga Lakmal all take two wickets apiece.
England's total would have been far worse had left-handed opener Cook not been dropped on 15 by Jayawardena at slip.
No other England batsman made more than Kevin Pietersen's 41 in an innings where a top-order collapse saw the hosts slump to 85 for four.
Cook was run out going for a bye by wicketkeeper Kumar Sangakkara.
In all he faced 143 balls with 13 fours.
This was only the 26-year-old Cook's second century in 29 ODI innings and his highest, surpassing the 102 made against India at Southampton in 2007.
Cook, having seen England well beaten when he won the toss and fielded at Headingley, opted to bat first at Lord's.
But England had as much trouble setting a competitive total as they had endured chasing one 48 hours earlier in Leeds.
Pietersen dominated a third wicket stand of 49, of which Cook's share was just seven, before Mendis checked England's recovery.
First he induced Pietersen, who faced just 43 balls, to sky a sweep to deep square leg where Suraj Randiv held a well-judged catch and then had Morgan lbw for four.
The series continues with a day/night match at Trent Bridge on Wednesday.