India thrashed Sri Lanka by eight wickets to set up a Champions Trophy final with England.
Chasing only 182 to win, India cantered home in 35 overs, with Shikhar Dhawan hitting 68 and Virat Kohli a sparkling unbeaten 58.
Earlier, Mahendra Dhoni's side took advantage of the damp conditions in Cardiff to reduce Sri Lanka to 41-3, effectively 41-4 after Tillakaratne Dilshan retired with a calf injury.
Angelo Mathews made 51 and Mahela Jayawardene 38 as Sri Lanka fought back, but India's spinners found turn to restrict Mathews' men to 181-8.
Any comfort that Sri Lanka could have taken from the difficult batting conditions was dismissed by Dhawan and Rohit Sharma, who shared 77 for the first wicket.
England made the most of the help given to their pace bowlers in a similarly one-sided semi-final victory over South Africa on Wednesday, but if they were hoping for more of the same in Birmingham, India proved that they can adapt to traditional English conditions.