Sri Lanka's Angelo Mathews bats during the Cricket World Cup match against India at Headingley in Leeds.
Sri Lanka won the toss and is batting first against India in Leeds.
India captain Virat Kohli said he would have batted first, too.
India made two changes after beating Bangladesh by 28 runs on Tuesday in Birmingham.
Yuzvendra Chahal is rested for left-arm spinner Kuldeep Yadav, and allrounder Ravindra Jadeja makes his first appearance in this World Cup for fast bowler Mohammed Shami.
Sri Lanka made one change after beating the West Indies by 23 runs on Monday in Chester-le-Street. Veteran allrounder Thisara Perera is in for Jeffrey Vandersay.
Conditions are dry but cloudy overhead.
Sri Lanka: Dimuth Karunaratne (captain), Kusal Perera, Avishka Fernando, Kusal Mendis, Angelo Mathews, Lahiru Thirimanne, Dhananjaya de Silva, Thisara Perera, Isuru Udana, Lasith Malinga, Kasun Rajitha.
India: Rohit Sharma, KL Rahul, Virat Kohli (captain), Rishabh Pant, MS Dhoni, Dinesh Karthik, Hardik Pandya, Ravindra Jadeja, Bhuvneshwar Kumar, Kuldeep Yadav, Jasprit Bumrah.
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.
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.
Rohit Sharma's 103 from 94 balls in India's successful chase of 265 separated him from Kumar Sangakkara's record four hundreds in 2015.
The Indian Cricket board (BCCI) on Tuesday announced a Rs 5 crore (Rs 50 million) bonus for the Indian team following their three-wicket win over Australia in the fourth Test at the Gabba that helped them seal the Border-Gavaskar series 2-1.
Pep Guardiola hailed the transformative impact of Ruben Dias after the Portugal centre-back helped turn Manchester City into the meanest defence in the Premier League. Dias arrived from Benfica in a 68 million euro (£62 million, $79 million)
Two Australian Open tennis players have tested positive for the coronavirus, health officials said on Tuesday, in a new blow for the tournament which is facing a backlash from a wary public. The unnamed players were among three new cases
Zlatan Ibrahimovic scored twice on his first start in two months as AC Milan beat Cagliari 2-0 on Monday to pull ahead of city rivals Inter on top of the Serie A table. Ibrahimovic, 39, got the first from the penalty spot after seven minutes, adding a second