World champions India thrashed Sri Lanka by eight wickets in Cardiff on Thursday to book their place in Sunday's Champions Trophy final against tournament hosts England at Edgbaston.
The Indians put in a disciplined bowling show to restrict Sri Lanka to 181 for eight and then overhauled the target with as many as 15 overs to spare to set up a summit showdown with hosts England on Sunday.
The 2011 World Cup champions maintained their unbeaten track record in this edition of the tournament winning all the four matches and are now gunning for their second Champions Trophy title having shared it with Sri Lanka in 2002.
While Ishant Sharma (3/33) and Ravichandran Ashwin (3/48) were the bowling heroes for India on a cloudy and chilly day at the Sofia Gardens, in-form Shikhar Dhawan (68) and Virat Kohli (58 not out) were the notable contributors with the bat in what turned out to be a completely lop-sided encounter.
Dhawan scored his second ODI half-century and his 77-run opening stand with Rohit Sharma (33) set up the easy victory.
In a tournament where India have flexed their batting muscle, it were the bowlers who came to the party today after India decided to chase.
Even as the afternoon remained overcast, the Sophia Gardens wicket eased out considerably and Lanka's spearheads Lasith Malinga and Nuwan Kulasekara were barely threatening.
There were a few times when the ball missed the edge of the bat, but Dhawan and Rohit were never in great discomfort.
Sharma gave the Indian innings a breezy start, punching Kulasekara through covers and Dhawan matched him with a similar stroke off Malinga, who struggled to find his bowling form on a big day.
Malinga actually suffered a bit of humiliation when Dhawan upper cut him for a six at backward point.
As has been a feature in this tournament, Dhawan held one end up and except for lives on 18 and 62, Kulasekara being the luckless bowler -- the left-hander was a picture of confidence. His 50 came off 73 balls and was laced with six fours and a six.
The course of Thursday's match, a repeat of the 2011 World Cup final India won by six wickets in Mumbai, was set in the first innings.
After India captain Mahendra Singh Dhoni won the toss, his seamers exploited the helpful overcast conditions as Sri Lanka were restricted to 181 for eight.
Ishant Sharma took three wickets for 33 runs following impressive work by new-ball duo Bhuvneshwar Kumar and Umesh Yadav.
Sri Lanka captain Angelo Mathews top scored with 51 in an innings where no other batsman made more than the 38 of Mahela Jayawardene, who two years ago became the only man to score a hundred in a losing cause in a World Cup final.
Sri Lanka were six for one when Kusal Perera edged a drive off Kumar and was caught at second slip by Suresh Raina.
They suffered a further setback when Tillakaratne Dilshan, after playing an on-drive, pulled up with a right leg injury.
He received lengthy on-field treatment but, still struggling, retired hurt shortly afterwards on 12 in the fifth over.
Ishant Sharma, with the aid of two excellent second slip catches by Raina, reduced Sri Lanka to 41 for three by removing Lahiru Thirimanne and dangerman Kumar Sangakkara.
It was a deserved reward for Dhoni's decision to attack the batsmen with two slips and only two men outside the circle.
The 23rd over saw Dhoni pass on wicketkeeping duties to Dinesh Karthik, a specialist gloveman but mainly deployed as a batsman this tournament.
That allowed Dhoni to bowl himself in conditions suited to his medium-pacers.
In his 222 previous ODIs, Dhoni had bowled only two overs, yet his decision very nearly proved a master-stroke with just his second ball Thursday.
Jayawardene, on five, was given out leg before to Dhoni by Pakistani umpire Aleem Dar only for the batsman to overturn it on review.
But Jayawardene was bowled by left-arm spinner Ravindra Jadeja after an ugly swipe across the line.
If Sri Lanka were to have any realistic chance of winning this match, it looked as if Lasith Malinga would have to take early wickets.
But for all slingshot seamer Malinga's skill, his bowling average of 40.88 against India is his highest against any country.
And the tone for the innings was set when left-hander Dhawan uppercut Malinga for a stunning six off the last ball of the bowler's third over.
Worse followed for Sri Lanka when Dhawan was dropped by first slip Mathews off Nuwan Kulasekara and put down by wicketkeeper Sangakkara, standing up, off the same bowler.
Dhawan cashed in with a 73-ball fifty before he he was dropped by Sachitra Sennayake, substitute for Dilshan, at point again off Kulasekara.
He was eventually stumped off Jeevan Mendis but by then India were in sight of victory.
Sri Lanka 181-8, 50 overs (A Mathews 51; I Sharma 3-33, R Ashwin 3-48)
India 182-2, 35 overs (S Dhiwan 68, V Kohli 58 no)
Result: India won by eight wickets