Sri Lanka's Angelo Mathews in action against India during their match at Headingley, Leeds, on Saturday. Lee Smith / Reuters
A gritty century by Angelo Mathews lifted Sri Lanka to 264-7 against India after a top-order collapse on Saturday, the final day of the World Cup group stage.
Former Lankan skipper made 113 and put on 124 runs for the fifth wicket with Lahiru Thirimanne to give Sri Lanka a respectable total after they were reeling on 55 for four at Headingley.
Fast bowler Jasprit Bumrah removed openers Dimuth Karunaratne (10) and Kusal Perera (18) inside eight overs after Sri Lanka, who are playing for pride after missing out on the semi-finals, won the toss and elected to bat.
Bumrah returned impressive figures of 3-37 in his 10 overs as India, who are already qualified for the semi-finals, restricted Sri Lanka with some quality bowling.
Kusal Mendis was stumped off left-arm spinner Ravindra Jadeja, who is playing his first match of the competition, before paceman Hardik Pandya had rising star Avishka Fernando caught behind for 20.
The right and left-handed batting combination of Mathews and Thirimanne rotated the strike and got the occasional boundary to keep the score ticking.
Thirimanne registered his 21st ODI fifty but soon fell to Yadav's left-arm wrist spin on 53 after giving away a catch to point.
Mathews, who was dropped on 61 by Bhuvneshwar Kumar at long-on off Jadeja, went on to complete his tone − his third in ODIs − with a boundary off Pandya.
The former Sri Lanka captain finally fell to Bumrah after smashing 10 fours and two sixes during his 128-ball knock.
Dhananjaya de Silva chipped in with his unbeaten 29 after his 74-run partnership with Mathews that took Sri Lanka past the 250-run mark.
Virat Kohli's India need 265 for a victory, which would give them a chance of finishing above defending champions Australia, who face South Africa in the day's other match.
India made two changes after beating Bangladesh by 28 runs on Tuesday in Birmingham.
Sri Lanka started the tournament as rank outsiders and finished sixth of the nine teams, registering one of their three wins against the world's top-ranked one-day international side and hosts England.
It was a superb display by the underdog Black Caps, who came into the match on the back of three straight defeats by Pakistan, Australia and England and only qualified for the semi-finals on net run-rate, while India topped the 10-team group stage.
Liverpool fans should be dreaming of a first Premier League title for 30 years, admitted Jurgen Klopp even if the German is taking nothing for granted after opening
Cristiano Ronaldo scored a brace as Juventus got better of Parma to extend their lead to four points over second place Inter Milan at the top of the Italian League
Pablo Sarabia struck late to propel Paris Saint-Germain (PSG) into the last 16 of the French Cup with a hard-fought 1-0 victory over a spirited Lorient.