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.
Lineups:
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.
Associated Press