Only once before have they pulled off a higher chase. That, though, was against a shambolic England team, at Headingley in 2006.
This was against one of the savviest 50-over sides in the world game, in front of a crowd dominated by Indian fans, and with the memory of their collapse against South Africa at the same venue still fresh in their minds.
Sri Lanka have not had much to cheer about since the retirements of Kumar Sangakkara and Mahela Jayawardene, but – against the odds – will now reach the semi-finals if they beat Pakistan at Cardiff on Monday.
It will be some turnaround from a side largely written off after their 96-run defeat by South Africa at the weekend.
India, meanwhile, must beat the South Africans at The Oval on Sunday to avoid an elimination that felt inconceivable after their batsmen had racked up 321 for six – at that stage the highest score of the tournament.
If Sri Lanka’s prospects looked as gloomy as the clouds hanging over south London, then a second-wicket stand of 159 in just 23 overs between Danushka Gunathilaka and Kusal Mendis did more than make up for the early loss of Niroshan Dickwella.
Both were run out in quick succession – Gunathilaka for 76 from 72 balls, a disconsolate Mendis for 89 from 93 – as India’s fielding moved up a notch.
But Kusal Perera and captain Angelo Mathews, back in the team after missing the South Africa game with a calf niggle, then added 75, and were separated only because Perera had to retire hurt on 47 because of hamstring trouble.
At that point they still needed 51 off seven overs, but Asela Gunaratne swivel-pulled Umesh Yadav over fine leg for six, then timed Bhunveshwar Kumar behind point for four.
When he got down on one knee to help Jasprit Bumrah over deep backward square for an almighty six that almost went out of the ground in the direction of the gas holders, Indian shoulders slumped.
With Mathews, who finished with 55 from 42 balls, classy and immovable, Sri Lanka could celebrate one of their most improbable wins.
To the delight of the tournament organisers, the result leaves Group B exquisitely poised, with all four teams on two points with a round of games to go. The remaining two matches are now in effect a pair of quarter-finals, with the team finishing second playing England in the first semi at Cardiff on Wednesday.
Earlier, the Indian innings had centred on Shikhar Dhawan’s third Champions Trophy century in seven innings – a brilliant 125 off 128 balls.
A rare duck for Virat Kohli – his first in one-day internationals since 2014 – and a failure for Yuvraj Singh had threatened to derail India after Dhawan and Rohit Sharma had begun with an opening stand of 139.
But Dhawan, who took centuries off South Africa and West Indies during the 2013 edition, found a reliable ally in MS Dhoni, and took the total to 261 before he tugged Lasith Malinga to long-on in the 45th over.
Dhoni fell in the last over for 63 from 52 balls, but India looked to have plenty. They reckoned without Sri Lanka’s spirit. (Courtesy DailyMail)