Veteran Sanath Jayasuriya (six), Jayawardene (seven) and Sangakkara (15) all fell cheaply before Silva and Dilshan succeeded in neutralising India's early advantage with their sensible knocks.
Mahela Jayawardene's Sri Lankans qualified with an all-win record in the four-team group, meaning they will also carry forward two crucial points in the next round.
India's batting crumbled in the must-win game as they were bowled out for 185 chasing a 255-run target on a good pitch to put in their worst performance in the event since the 1979 edition in England.
They were the champions in 1983, semi-finalists in 1987 and 1996, and runners-up in 2003. This time, they could manage just one win in three matches, against debutants Bermuda.
Skipper Rahul Dravid, batting with a runner in the later part of his innings due to cramp, top-scored with 60 but that not good enough for his under-performing team despite enjoying the crowd support.
Bangladesh, who shocked India in their opening match, now