Chasing a mammoth 321-run target, Kohli completed his 9th ODI ton and snitched two crucial stands with Gautam Gambhir (63) and Raina to help India chased down the target in 36.4 overs.
India now will qualify for the finals if Australia beat Sri Lanka in the last league match of the tri-series on Friday.
Kohli smashed two sixes and 16 boundaries in his blitzkrieg knock whereas Raina hit a six and three fours in his 24-ball innings.
Kohli raced to his hundred in just 76 balls, hitting 10 boundaries and a six.
India lost Gambhir after he added 115 runs for the third wicket with Kohli as they kept India’s chances of earning bonus point alive at Bellerive Oval in Hobart.
Gambhir played sensibly before he was run-out trying to snatch risky second run, he hit four boundaries in his 64 balls knock.
Gambhir smashed four boundaries in his 31st ODI fifty that came 47 balls while Kohli reached to his 21st ODI fifty in 44 balls that included three fours and a six.
Gambhir and Kohli also completed unbeaten 100 runs stand for the third wicket which was the first hundred runs stand for India in the tri-series. The pair raced to their century stand in just 89 balls.
After losing Virender Sehwag and Sachin Tendulkar in quick succession, Gautam Gambhir and Virat Kohli took India past 100 runs in 11.1 overs.
Sachin, who was going well towards his first fifty of the series, was caught in plumb of the wicket from Lasith Maliga’s Yorker. Master blaster played handy knock of 39 runs, hitting five fours in his 30 balls stay at the crease.
Sehwag also made quick-fire 30 runs in 16 balls before went back to the pavilion. Farveez Maharoof removed the dangerous Sehwag, who smacked five boundaries and huge six in his cameo.
India got off to blistering chase with Sehwag and Sachin putting 54 runs in just 38 deliveries for the first wicket.
Dilshan remained unbeaten on 160 which is exactly half the score of what Sri Lanka piled against India in the 11th ODI of the tri-series.
Sangakkara was sent back to the pavilion by Praveen Kumar just after scoring his 13th ODI ton. Sanga’s brisk knock of 105 came in just 87 deliveries that included eight fours and two sixes.
Sangakkara and Dilshan also stitched a record 200 runs second wicket stand at Bellerive Oval, bettering the previous best 145 between greats West Indian Desmond Haynes and Jeff Dujon in 1988.
Flamboyant Dilshan stood firm to reach his 11th ODI ton to add the India’s worry to stay in the race for the tri-series finals.
Sangakkara slammed quick-fire fifty in just 55 balls, smacking three boundaries and a six in his 39th ODI fifty and first of the series.
Sri Lankan opener Tillakaratne Dilshan played a steady knock to take Sri Lanka past 100 runs against the beleaguered Indians.
Dilshan reached to his 27th ODI half-century in 68 balls, smashing five boundaries in his second knock of more than fifty in the series.
Dilshan and Sangakkara played patiently after India struck in the 12th over to claim the first Sri Lankan wicket.
Ravindra Jadeja gave India first breakthrough when skipper Mahela Jayawardene went for late cut but got inside edge that went to the first slip where Virender Sehwag showed good reflexes and pouched it safely.
Sri Lanka got off to a steady start as Jayawardene and Tillakaratne Dilshan have added 49 runs in 12 overs for the opening wicket after being sent into bat first.
Indian skipper Mahendra Singh Dhoni, who just won the second toss of the entire series, decided to field in an attempt to claim a vital bonus-point win over Sri Lanka.
Senior paceman Zaheer Khan returned to the Indian team in place of injured Irfan Pathan while Sri Lanka retained the same playing eleven.
If India can beat Sri Lanka with a bonus point on Tuesday, they will earn themselves an outside chance of remaining in the tri-series. If not, they can finally take the flight home.
India will have to chase down whatever total Sri Lanka manage in 40 overs to earn the bonus point. After the defeat against Australia on Sunday, the Indians assumed that the tri-series was over for them.
India would not only need a win with a bonus point to remain alive but also hope that Australia would somehow prevail over Lanka in the last league match on Melbourne on March 2.
A bonus point though looks a wild dream for a team which is getting all-out in most of the matches and have suffered defeats by the margin of 101, 51 and 87 runs in last three successive matches.
Sri Lanka: Mahela Jayawardene (capt), Tillakaratne Dilshan, Kumar Sangakkara (wk), Dinesh Chandimal, Lahiru Thirimanne, Thisara Perera, Angelo Matthews, Nuwan Kulasekara, Lasith Malinga, Rangana Herath and Ferveez Maharoof.