The home team was comfortably placed at 139 for one, thanks to the second wicket stand from opener Danushka Gunathilaka (74) and Lahiru Thirimanne (59) before collapsing to 187 all out.
The match situation changed drastically after Thirimanne's fall in the 38th over with the next nine batsmen adding 48 to the total in the innings lasting 55.5 overs.
All eight bowlers in the Indian squad had a go with chinaman Kuldeep (4/14 in 6.5 overs) and Jadeja (3/31 in 9 overs) standing out.
India got to bat for 30 overs, scoring 135 for three with opener Abhinav Mukund (0) and Cheteshwar Pujara (12) falling cheaply.
KL Rahul, returning to competitive cricket after a three month injury lay-off, made a fine 54 off 58 balls including seven fours.
Virat Kohli too got to spend some time in the middle. He scored 34 off 46 balls and shared an unbeaten 43-run stand with Ajinkya Rahane (30 unbeaten off 30).
Though Pujara stuck around for sometime, it was an opportunity lost for Mukund, who is competing for the opening slot with Dhawan.
Both Pujara and Mukund were bowled by left-arm pacer Vishwa Fernando.
On the bowling front, it was a near perfect day for India ahead of the first Test beginning in Colombo on July 26.
Mohammed Shami worked up good pace upfront to take a couple of wickets in five overs.
The pacers, who were tidy but went wicketless, were Ishant Sharma, Umesh Yadav, Bhuvneshwar Kumar and Hardik Pandya.
Notably, India's premier spinner Ravichandran Ashwin went wicketless in 10 overs while Kuldeep and Jadeja troubled the batsmen.
Kuldeep has been impressive ever since he made his Test debut against Australia in March before making an impact in the limited-overs series in the West Indies.
The focus for India tomorrow will be to ensure the other batsmen get a go in the middle including Dhawan, who has made his way back to the Test team after a string of good performances in limited overs format.
Sri Lanka Board President's XI: 187 all out in 55.5 overs (Gunathilaka 74, Thirimanne 59; Kuldeep 4/14)
India: 135/3 in 30 overs (Rahul 54, Kohli 34 batting; Fernando 2/21)
Danushka GunathilakaIndia vs Sri Lanka 2017India vs Sri Lanka Board President’s XIIndia vs Sri Lanka Warm Up Matchkl rahulKuldeep YadavLahiru ThirimanneRavindra Jadejavirat kohli
First Published: July 21, 2017, 6:41 PM IST