England will meet Australia in next week's Champions Trophy semi-finals after heavy rain in Southampton gave them a 49-run win over Sri Lanka under the Duckworth/Lewis system in their Group D decider on Saturday.
Andrew Flintoff struck 104 to steer England to 251 for seven before shining with the ball to help reduce Sri Lanka to 95 for five in the 24th over when rain ended play for the day to send England through thanks to the complex mathematical system.
The match had already spilled over from Friday when showers meant only 32 overs of England's innings were bowled.
One-day player of the year Flintoff, 21 not out overnight, smashed three sixes in his third one-day hundred before perishing in the final over when he dragged a Chaminda Vaas slower ball on to his stumps.
"I hope I have got two more games left in me this summer and can contribute again," Flintoff said looking ahead to the Australia clash at Edgbaston on Tuesday and a possible final appearance next Saturday.
"Everyone is excited about the chance to play the best in the world," he added.
Fellow all rounder Paul Collingwood also contributed a useful 39 in a 94-run fifth wicket partnership before he was caught on the boundary by Mahela Jayawardene late on.
England had resumed on 118 for three but unluckily lost Marcus Trescothick for 66 in the second over of the morning as bowler Tillakaratne Dilshan diverted Flintoff's drive on to the stumps to run out the opener at the non-striker's end.
Flintoff, who was dropped on one on Friday, had another lifeline in the same Dilshan over when Upul Chandana failed to gather a difficult dipping catch at deep mid-wicket.
In Sri Lanka's reply, Steve Harmison had Avishka Gunawardene and captain Marvan Atapattu both caught behind with two searing deliveries before Flintoff tempted Sanath Jayasuriya (27) to drive on the up to Darren Gough at mid-off.
Saman Jayantha then edged Flintoff to wicketkeeper Geraint Jones and slow left armer Ashley Giles took a juggling caught- and-bowled chance to dismiss Jayawardene before the weather brought an end to proceedings.
===========================================
SCOREBOARD England
===========================================
M.Trescothick run out 66
V.Solanki c Sangakkara b Maharoof 18
M.Vaughan b Zoysa 5
A.Strauss run out 7
A.Flintoff b Vaas 104
P.Collingwood
c Jayawardene b Vaas 39
G.Jones not out 2
A.Wharf run out 0
A.Giles not out 0
Extras: (lb-2 w-8) 10
Total: (for seven wickets,
50 overs) 251
===========================================
=========================================
Sri Lanka
=========================================
A.Gunawardene
c Jones b Harmison 5
S.Jayasuriya c Gough b Flintoff 27
M.Atapattu c Jones b Harmison 1
W.Jayantha c Jones b Flintoff 23
K.Sangakkara not out 17
M.Jayawardene c and b Giles 7
T.Dilshan not out 2
Extras (lb-5 w-2 nb-6) 13
Total (for five wickets, 24 overs) 95
=========================================