Virat Kohli of India, left, celebrates with Suresh Raina after hitting the winning runs during the ODI at Hobart. Photograph: Scott Barbour/Getty Images

A brilliant century by Virat Kohli steered India to an astonishing seven-wicket victory over Sri Lanka in Hobart.

Having been set 321 for victory and needing to reach the target within 40 overs to secure a bonus point and keep their Commonwealth Bank Series finals hopes alive, the previously misfiring Indian batting lineup clicked into gear at Blundstone Arena to produce a stunning victory.

They passed the target on the fourth ball of the 37th over to move level with Sri Lanka in second place in the tournament standings, but still need to rely on Australia winning against Sri Lanka on Friday to go through to the final with a superior win/loss record against their fellow tourists. It was the equal third highest Indian run chase in ODI history, and was achieved with more than 12 overs to spare.

On target from the outset thanks to a whirlwind partnership of 54 from 33 deliveries between Sachin Tendulkar (39) and Virender Sehwag (30), the unlikely task of reaching 321 within 40 overs never really looked beyond India while they kept wickets in hand.

With Kohli (133 not out from 86 balls) dominating a 115-run third wicket partnership alongside the more staid Gautam Gambhir (63 from 64 deliveries) the Sri Lankan attack had no answers – even the normally tidy Lasith Malinga posting ragged figures in the face of the onslaught.

Despite taking the precious wicket of Tendulkar, Malinga was carted for 24-runs from his seventh over and finished with figures of one for 96 from 7.4 overs in a match in which bat dominated ball from the outset.

The Sri Lanka opener Tillakaratne Dilshan carried his bat through the first innings for a dazzling 160 from 165 deliveries and added 200 runs for the third wicket with fellow centurion Kumar Sangakkara (105 from 87 balls).

With 320 runs in the bank, Sri Lanka would have been confident of defending the total – and certainly the 40-over period within which India had to earn a bonus point – but were pushed from the outset on a stunning night of cricket.

Kohli shared a 120-run stand with the big hitting Suresh Raina (40 from 24 balls) and the pair brought up their century partnership from just 45 deliveries amid a flurry of fours and sixes to really take the match away from Sri Lanka.

Kohli smashed 16 fours and two sixes in his highest limited-overs score for India, an innings that may spur him to greater heights in what is a burgeoning career.

All eyes will now turn to Melbourne for the final match of the series on Friday, with Indian fans praying the hosts beat Sri Lanka to ensure that their magnificent effort was not in vain.

Sign up for the Guardian Today

Our editors' picks for the day's top news and commentary delivered to your inbox each morning.