India 182 for 2 (Dhawan 68, Kohli 58*) beat Sri Lanka 181 for 8 (Mathews 51, Ishant 3-33, Ashwin 3-48) by 8 wickets
Scorecard and ball-by-ball details
The only glitches in India's march into the final were two sets of pitch invaders running on to the field on two separate occasions. On a Cardiff surface with a lot of moisture, the ball seamed, bounced steeply and turned appreciably, and the Indian bowlers were all over Sri Lanka after winning the toss. In the afternoon, the Indian openers continued their run of impressive stands, adding 77 through some luck and some attractive shots, and India cruised home with 15 overs to spare.
It would have reminded India of their first day of international cricket in South Africa on the 2010-11 tour, when they were inserted on a pitch that had absorbed a lot of rain and were bowled out for 136. Watching the first innings of this match, it seemed Sri Lanka had done well to not be rolled over for 136 themselves. The conditions were so juicy India's three frontline quicks bowled the first 22 overs - even MS Dhoni had a bowl later - and India either beat the bat or hit edge on 68 occasions.
The Sri Lankan batsmen couldn't be blamed much, except for probably Kusal Perera. They had to dig in hard just to survive. They strived to - Kumar Sangakkara had left alone 12 out of his first 32 balls - but eventually the ball with your name arrived. However, what really foiled Sri Lanka's plans was the assistance the pitch provided to spin, which they hadn't budgeted for when they were batting out the quicks like it was a Test. The quicks went for 98 for four wickets in their 30 overs; the spinners took four wickets for 81 in their 20.
The pitch might have been great help, but India exploited the toss advantage with impressive accuracy. The first extra came in the 20th over. Angelo Mathews, among others, fought the conditions, but like others he too fell the moment he became adventurous.
It didn't help that Sri Lanka had lost Dinesh Chandimal to injury before the match began and Tillakaratne Dilshan retired hurt in the fifth over. Kusal showed again that his game is not suited for these conditions as he followed a full and wide delivery to edge it for Suresh Raina to take one of his three catches at second slip. It was the seventh time in 12 matches that Buvneshwar Kumar had taken a wicket in his first spell, including five openers dismissed in single figures.
Then Dilshan seemed to have pulled his calf while trying to keep out a sharply swinging delivery. He tried to bat on, but with the new no-runner regulations he had to leave the field. Sangakkara and Lahiru Thirimanne began to play it like the first morning of a Test, and justifiably so.
India kept the pressure up with Bhuvneshwar bowling a nine-over spell, and Umesh Yadav and Ishant Sharma getting appreciable movement every time they landed the ball on the seam. Ishant got the ball to stick into the pitch and steep tennis-ball bounce too.
Sangakkara began to take the odd risk at the end of the 13th over, but when he charged at Bhuvneshwar and square-drove him for the first boundary since the fourth over, the score had reached only 32. Around this time, Ishant was beginning to get balls to misbehave a lot. The batsmen had to start playing at balls sooner or later, and when they did it didn't bring good news.
The combination of that bounce and seam movement finally accounted for Thirimanne, who followed a short-of-a-length delivery and fended in front of his chest. Sangakkara provided a replay in case you had missed it. Raina had taken all three, and the score now was 41 for 3 after 18 overs. It was so inviting that when Dhoni finally took off a seamer after 22 overs, he gave up the pads and began to bowl the 24th over.
During their 78-run stand in 18.1 overs, Mahela Jayawardene and Mathews successfully reviewed an lbw call each, and seemed to have put Sri Lanka back on track. With the ball turning thanks to the moisture, their plans unravelled. Jayawardene was bowled by a Jadeja skidder, and the batting Powerplay's analysis read 5-2-12-1.
Everyone who tried big hits in the remaining overs fell to the tricks of the pitch. Dilshan came back to bat for the last two overs. Sri Lanka, though, could manage just the 54 in the last 10. About an hour later, by when the Indian openers had seen off the Nuwan Kulasekara threat, it almost seemed the pitch had lost all its moisture. Shikhar Dhawan continued to drive and cut fearlessly, Rohit Sharma continued to provide the starts, and Virat Kohli added a fifty to four centuries in his last seven matches against Sri Lanka.
Sri Lanka didn't help themselves. They used Lasith Malinga - their best hope despite his poor record against India - only for three overs at the top and then when India had chugged along to 93 for 1. They dropped Dhawan thrice, first when he was on 18. India were not complaining, though.

Sidharth Monga is an assistant editor at ESPNcricinfo