The summit clash demanded a special performance by the Indians who aspire to be the number one ODI team in the world but all they managed was 245 before folding in 48.2 overs, denying their bowling colleagues enough runs to defend.
Things could have been embarrassing for them but for the 106-run stand between Suresh Raina (106) and Ravindra Jadeja (38) and a characteristically brisk 27-ball 42 by Virender Sehwag upfront.
Chasing the target, Sri Lanka fumbled occasionally before eventually cruising to 249 for six in 48.3 overs. For them, Tillakaratne Dilshan (49) and Kumar Sangakkara (55) set the tone and Mahela Jayawardene (71 not out) completed the job.
Not that the Sri Lankan chase was a hiccup-free affair.
Ashish Nehra had the scoreless Upul Tharanga caught in the slip by Virat Kohli off his third delivery and Sri Lanka were yet to open their account at that stage.
Sangakkara is not new to such situation and the Lankan captain, in Dilshan's company, added 92 runs to put the chase back on track at the Sher-e-Bangla Stadium.
Dhoni pressed in service Yuvraj Singh and then collaborated with him to remove the dangerous Dilshan off the left-arm spinner's first delivery.