Postpublished at 18:24 British Summer Time 8 June 2017
Simon Mann
BBC Test Match Special commentator
Anyone who has been here today has witnessed something special.
Victory sealed by Mathews & Gunaratne
Mendis set up SL chase with 89
Gunathilaka run out for career-best 76
Dhoni's 63 pushed India beyond 300
Dhawan made 125; Rohit 78 off 79
Highlights on BBC Two at 23:15 BST (not in Wales or NI)
Matthew Henry and Jack Skelton
Simon Mann
BBC Test Match Special commentator
Anyone who has been here today has witnessed something special.
Angelo Mathews points to the name on the back of the shirt as he celebrates.
A sensational innings from the skipper.
He has been out injured for six months but has guided his side home.
What a chase.
What a win for Sri Lanka.
Their joint highest chase in ODI history.
Simon Mann
BBC Test Match Special commentator
It's been wonderful batting from start to finish from the Sri Lankans. I'm not even sure Sri Lanka believed they could topple India today.
Oh behave. What a shot from Angelo Mathews.
Straight down the ground for four.
One to win.
Target 322
No sign of this going any way other than Sri Lanka's. Gunaratne take three from the first two balls of this over.
Simon Mann
BBC Test Match Special commentator
It's going to take something sensational to stop India getting soundly beaten now.
8 to win from 12 balls
Runs required down into single figures.
Just two hits needed.
11 runs to win from 15 balls
The Indian fans are starting to drift out of the Oval.
I doubt one of them even considered this outcome at the halfway point.
What have India got left? Death overs specialist Jasprit Bumrah only gives away two from the first three balls of the 48th but India need wickets.
13 runs to win from 18 balls
Well done Angelo Mathews.
A loud, clear call as he sends Gunaratne back.
No need to take any risks. Both of these two have already done the hard work with some big hitting. Now they just have to see it home.
#bbccricket
Dave Wood: At the risk of sounding arrogant, I'm sure England would much rather face Sri Lanka/Pakistan than India/SA in the semi-final.
Isa Guha
Ex-England seamer on BBC Test Match Special
Angelo Mathews hasn't played a one-day international since last August, but he carries so much authority out there at the crease. He handles himself so well.
14 runs to win from 20 balls
The Sri Lanka dressing room are loving this. They know they have almost sealed a famous victory.
Mathews drops the ball into the leg side and picks up two. No sign of that injury.
17 runs to win from 23 balls
Four more!
Width from Kumar and Mathews does not miss out. This has been really poor in the last few overs from India.
Ed Smith
Ex-England batsman on BBC Test Match Special
Gunaratne is playing a match-sealing innings here. The crowd are so quiet - they can barely believe it.
21 runs to win from 24 balls
Clever from right-handed Gunaratne.
He knows he has enough runs from this over already and just dabs the ball down to third man, twice picking up a couple.
Sri Lanka don't need to take any risks from here.
#bbccricket
Ralph: Just rejoined the action. India still tournament favourites? Come on Sri Lanka. #upset, external brewing
Adrian Murray: Can Sri Lanka cause an upset? It would make the group position interesting
Ed Smith
Ex-England batsman on BBC Test Match Special
That is shot of the day from Gunaratne. It almost went out of the ground.
Target 322
Unbelievable.
On one knee, Asela Gunaratne has swept Bumrah for six. They're going to do this with a couple of overs to spare.