Kohli, who played a brilliant innings of 49 under pressure against Pakistan on Saturday, hit 56 off 47 balls to guide India to 142-5 after their medium pacers restricted Sri Lanka to 138-9.
Dhawan returned to the starting line-up after an injury break against Pakistan but survived just three balls before edging Kulasekara to Dinesh Chandimal for one.
Sharma fell in Kulasekara’s next over offering a catch to Chamara Kapugedera at slip for 15.
Kohli, who hit seven fours, added 54 runs with Suresh Raina for the third wicket to put India firmly in control.
“Touch wood, it’s coming out nicely now. Another crunch situation, 16 for 2. It’s nice to challenge yourself,” Kohli said after the match.
“Kulasekara and Angie were bowling well. I knew I’m striking the ball well, so I have to take the pressure off the other batsman by hitting the odd boundary.”
Dasun Shanaka broke the partnership as Raina miscued a catch to Kulasekara at mid-off after making 25 runs.
Yuvraj Singh ensured it did not affect India’s run-flow, hitting left-arm spinner Rangana Herath for two sixes off successive balls in the next over to make 35 off 18 balls.
India captain MS Dhoni praised Singh for his effort.
“Yuvraj Singh’s innings was crucial, not just for this match but for the team as well,” said Dhoni. “Good to see him get into some good form.”
Put into bat first by Dhoni, Sri Lanka’s Kapugedera scored the team’s highest of 30 off 32 balls, but the islanders needed a strong effort from lower order batsmen Milinda Siriwardana and Kulasekara.
Siriwardana made 22 off 17 balls while Kulasekara added 17 after facing just six balls to provide a late impetus.
Indian medium pacers controlled the innings making regular in-roads from the start.
Ashish Nehra removed Chandimal early after he added six runs to his 50 and 37 runs in the previous two matches.
Hardik Pandya and Jasprit Bumrah then claimed two wickets each to finish with 2-26 and 2-27 respectively before the lower-order gave the Sri Lankan innings some respectability.
Sri Lanka captain Angelo Mathews said dew that had fallen on the ground in the evening was partly responsible for their defeat.
“With the dew coming in, it felt like we were 20-25 runs short, but the Indians batted well, as always, and Virat was outstanding,” he said.
“If the wicket was like the previous one, it would have been a fighting total, but the dew came in and the ball started sliding through.”
Bangladesh will face Pakistan in the tournament on Wednesday.