World Cup semi-final, Durban: India 270-4 (50 overs) beat Kenya 179 all out (46.2 overs)
Sourav Ganguly's fourth World Cup century was enough to clinch India a place in the final, courtesy of a 91-run win over Kenya in Durban.
Chasing 271 for victory, the East Africans lost four cheap wickets inside the first 15 overs before limping to 179 all out.
Left-armers Zaheer Khan and Ashish Nehra did the bulk of the early damage, and Zaheer took the final wicket to finish with figures of three for 14.
Kenya captain Steve Tikolo stayed with his sinking ship, hitting a second consecutive half-century, including 20 off a single over from Yuvraj Singh.
We need to stay focused and believe we can win the tournament
India captain Sourav Ganguly
But only one result had been likely for more than an hour before he played on to Sachin Tendulkar in the 44th over.
India now meet Australia in Johannesburg on Sunday in what will be just their second final, and their first since winning the title in 1983.
Late-innings fireworks had earlier turned an uninspiring performance from India into a near-impossible total.
A score of 188 for two with 10 overs remaining became 270 for four thanks to a 34-run partnership between Ganguly and Yuvraj Singh that occupied just 22 balls.
Just 14 boundaries came along the ground, but India also managed seven sixes.
Ganguly led the way with five, taking his World Cup total to a tournament-leading 14.
His fifth, a Martin Suji full-toss smashed deep into the crowd on the mid-wicket boundary, brought up his century from 108 deliveries.
Tendulkar led the way early on, adding 74 for the first wicket with Virender Sehwag, and out-scoring his skipper in a century stand for the second.
Tendulkar fell to the spin of Steve Tikolo
He had faced 101 balls for his 83 when he became the sole victim of Tikolo's off-spin, pulling to David Obuya at midwicket.
Sehwag's wicket, a leading edge collected by Maurice Odumbe over his shoulder at mid-off for 33, was just reward for Peter Ongondo in a tight opening spell.
But Ongondo's arrival as a batsman was less effective.
Promoted up the order to three in search of quick runs, he faced just five balls, failing to get off the mark before top-edging a pull to mid-on off Nehra's first legal delivery.
Opener Ravindu Shah was already back in the pavilion, lbw to Zaheer Khan in the ninth over.
And the route was well-trodden by his team-mates, who were unable to score at anywhere near the required rate.
Maurice Odumbe kept the fielders on their toes with a cameo 20 before attempting to gain a second six over midwicket, to be caught in the deep by Zaheer.
I hope we will get some young players coming through after the World Cup
Kenya skipper Steve Tikolo
With bad weather looming, Ganguly brought spinners on at either end, accounting for 10 overs in just 29 minutes.
India were well in command by the half-way mark in the Kenyan innings but it took 22 further overs for the job to be completed.
The 57-run eighth-wicket partnership between Tikolo and Collins Obuya occupied 10.3 overs.
The youngest of the three Obuya brothers was Tendulkar's second victim, lbw in the 46th over, before Zaheer bowled Martin Suji to end proceedings.
India: Sachin Tendulkar, Virender Sehwag, Sourav Ganguly
(captain), Mohammad Kaif, Rahul Dravid, Yuvraj Singh, Dinesh
Mongia, Harbhajan Singh, Zaheer Khan, Javagal Srinath, Ashish
Kenya: Kennedy Otieno, Ravindu Shah, Steve Tikolo
(captain), Maurice Odumbe, David Obuya, Hitesh Modi, Thomas
Odoyo, Collins Obuya, Peter Ongondo, Martin Suji, Asif Karim.