Yuvraj Singh marked his return to form with a rollicking century as India warded off a spirited fightback by the West Indies to move into the final of the IndianOil Cup one-day international tri-series with a nail-biting seven-run victory.
After scoring 262 for four, the highest total of the tournament, the Indians had to dig deep into their reserves to quell the late resurgence of the young West Indies team, just about managing to stop them at 255 for nine.
The islanders needed 12 runs from the last over to continue their giant-killing act but Ashish Nehra ensured that India secured a place in Tuesday's final by giving away just four runs in the thrilling day-night encounter at the Premadasa stadium in Colombo.
The Indians seemed to cruise along comfortably at one stage having reduced West Indies to 112 for six but Runako Morton (84) and Denesh Ramdin (74 not out) staged a remarkable recovery with a 83-run partnership.
The Indians will now take on hosts Sri Lanka in the flood-lit final at the same venue on Tuesday.
The Indian batting came good for the first time in the tournament with Yuvraj cracking a combative 110 to lift India from a precarious 51 for three.
Yuvraj, who missed the previous two matches due to a viral fever, stroked 11 fours and a six and added 165 runs for the fourth wicket with Mohammad Kaif who made 83 not out.
Anil Kumble, playing his first match on the tour, then produced an incisive spell of three for 38 to break the back of the second string West Indies side.
Irfan Pathan (2-34) and Ashish Nehra (2-60) blew holes in the Caribbean top order but the latter proved expensive in his return spells before making amends with the tight final over.
The inexperienced Caribbean team did not let the absence of their skipper Shivnarine Chanderpaul affect their resolve.
West Indies, to be fair, kept up a good rate to keep themselves in the game with a fair shout before running out of steam.
India began their quest horribly, losing their first three wickets for 51 runs by the 17th over and losing Sourav Ganguly by way of injury when a short ball from Darren Powell smashed on to his left-arm.
Ganguly was taken to hospital and x-ray revealed no fracture but the left-hander was put out of the match.
Virender Sehwag (6), V V S Laxman (7) and Rahul Dravid (10) meanwhile were not worth their reputation in the middle.
Sehwag was out of sorts; Laxman typically loose outside the off-stump and Dravid, for the second time, losing his wicket to an off-spinner.
Yuvraj Singh gave an early insight into his mindset when he cut and flicked left-arm pacer Deighton Butler for boundaries in the 11th over. Kaif was an ideal foil and the two took recourse to aggression to bail India out of mess.
They batted together for nearly 30 overs, running hard between the wickets and pouncing for big shots on anything loose. They put on 165 runs from 177 balls. Yuvraj was the first one to reach his half century from 58 balls with seven fours and the century stand between the two came in 124 balls.
This was Yuvraj's third hundred in his career of 120 matches. It has taken him another 15 months and 44 games to reach the three figures after his 139 against Australia in the VB series tri-series in February 2004.
A feature of Yuvraj's innings was his crashing off-drives and thumping pulls whenever the fast bowlers pitched it short.
Kaif ran swiftly in his customary style between the wickets and cleverly hit his shots between the fielders. He shifted his gears admirably and took the scores past the 250-mark with Mahendra Singh Dhoni who smashed an unbeaten 28 from 13 balls with two sixes and a four.
The unbroken fifth wicket stand of 46 runs came in the last four overs.
West Indies began the chase brightly enough but once Irfan Pathan struck twice in his opening spell, removing Xavier Marshall (19) and stand-in captain Sylvester Joseph (4), they began to lose way.
Ashish Nehra removed Narsingh Deonarine (6) through a fine catch at mid-on by Kumble, who then began gobbling up wickets like someone who has been away from it for long.
Kumble took his first two wickets by way of leg before wickets, Omari Banks (4) and Dwayne Smith (26) were the victims, the latter a dispiriting presence for Indians in the middle as he smashed Nehra for two sixes on the onside, the first one such a monstrous pull it cleared the stadium at the square leg area.
Kumble's third success came in the fourth over when Ricardo Powell (4) popped a catch at forward short leg. West Indies were 112 for six and India hadn't even worried about their fifth bowler.
Morton waged a lone battle bringing up his half-century with a straight drive off Kumble, and had raised visions of an upset win when Ashish Nehra had him caught at midwicket for 84, made from 105 balls with six fours and a six.
Wicketkeeper Denesh Ramdin was another one who kept the West Indies reply going till the final overs even as the run-rate was climbing all the while.
They needed 48 runs from the final five overs with two wickets remaining.
The equation came down to 30 from the last three overs and when Ramdin took boundaries off the first two balls from Nehra, anything appeared possible.
The golden arm of Mohammad Kaif then ran out Deighton Butler (9) at the non-striker's end but the West Indies were still on and needed 12 runs from the last over but Nehra conceded only four runs as India emerged winners by seven runs.
West Indies: Sylvester Joseph (captain), Xavier Marshall, Runako Morton, Narsingh Deonarine, Denesh Ramdin, Tino Best, Deighton Butler, Ricardo Powell, Dwayne Smith, Omari Banks, Daren Powell
India: Rahul Dravid (captain), Virender Sehwag, Sourav Ganguly, V V S Laxman, Yuvraj Singh, Mohammed Kaif, Mahendra Singh Dhoni, Anil Kumble, Irfan Pathan, Zaheer Khan, Ashish Nehra