Sri Lanka pulled off a big run chase to beat India ©Getty Images

Sri Lanka pulled off the highest-run chase in the history of the International Cricket Council (ICC) Champions Trophy to stun rivals India at The Oval in London.

Defending champions India posted an impressive-looking 321-6 after being asked to bat by Sri Lankan captain Angelo Mathews.

The skipper, however, said afterwards he thought his side has kept the Indian total down on a good batting wicket.

His side chased down the total with eight balls to spare as they won the Group B clash by seven wickets.

"It's one of the top wins, to beat India," said Mathews.

"It was a fantastic wicket. 

"The bowlers did brilliantly to restrict India to 321. 

"It's a very chaseable target."

Indian opener Shikhar Dhawan was the star of their innings, blasting a fine 125 from just 128 deliveries.

His opening partner Rohit Sharma scored 78 as the Indians put on 138 for the first wicket.

Shikhar Dhawan scored a century but ended up on the losing side ©Getty Images
Shikhar Dhawan scored a century but ended up on the losing side ©Getty Images

MS Dhoni was also in good nick with the bat, striking 63 from 52 balls.

Sri Lankan bowlers toiled on a tough day for the fielding sides, with three going for over 70 runs.

The reply started poorly for Sri Lanka when Niroshan Dickwella fell with the score on only 11.

A 159-run second stand brought them back into the contest, however, with Danushka Gunathilaka finishing on 76 and Kusal Mendis reaching 89.

Mathews ended unbeaten on 52 as he steered his side over the line.

The result means all four teams in Group B have won one match with just one set of games remaining.

The last fixtures - India v South Africa and Sri Lanka v Pakistan - are now effective knock-out matches with the winners both going through to the semi-finals.

Group A action will return tomorrow with New Zealand taking on Bangladesh.

Both sides are searching for a first victory.