India pulled off an eight-run victory in a low-scoring thriller after all-rounder Vijay Shankar picked two wickets in the final over of the second one-day international against Australia on Tuesday.

Punit Paranjpe / AFP

The Australians needed 11 runs from the last over with two wickets in hand but Shankar, playing only his sixth ODI, kept his nerves to pick a wicket off his first and third balls in the day-night game in Nagpur.

Skipper Virat Kohli, who struck 116 in India's modest total of 250, asked Shankar to bowl the final over ahead of the regular Kedar Jadhav, and he was rewarded amply for his move.

The Aussies were bowled out for 242 off 49.3 overs with Marcus Stoinis top-scoring with 52.  

India, who registered their 500th win in one-day internationals, now lead the five-match series 2-0.

"It was an opportunity to redeem myself after the expensive over I bowled," said Shankar, who had conceded 13 runs in the only over he had bowled before being asked to take charge of the final over.

"I was up for the challenge... I wanted to just stick to the basics, hit the stumps from a hard length as there was a bit of reverse (swing)," he said.

The visitors were off to a steady start with openers Aaron Finch (37) and Usman Khawaja (38) putting on 83 runs before being dismissed in successive overs.

Glenn Maxwell (18) saw his stumps being uprooted after a ball from Kuldeep Yadav sneaked from under his bat.

But it was the run-out of Peter Handscomb who looked set for a big score that hurt the visitors hard.

"It was close, it was one of the games that we wanted to take as deep as we can, hoping that we could get across the line," said Australian skipper Aaron Finch.

"Stoinis played a really terrific innings but we couldn't get across the line." 

- Kohli shines -

Handscomb, who made 48 off 59 balls, tried to take a risky single but Ravindra Jadeja made no mistake in hitting the stumps.

A double-strike by Jasprit Bumrah (2-29) turned the game around for the Indians who ensured there was no let-up in the pressure on the visitors.

Earlier Kohli smashed his 40th century on a challenging pitch that seemed to aid bowlers.

Kohli hit 10 fours in his 120-ball knock and held anchor after Finch had elected to bat.

The Indians got off to a rocky start, losing openers Rohit Sharma and Shikhar Dhawan (21) early in the innings.

Sharma (0) top-edged off Adam Zampa and Dhawan (21) was given out leg before wicket after Australia's appeal was upheld on review.

India had no such luck as Ambati Rayudu's decision to appeal against the on-field umpire's lbw decision was turned down, the hosts reduced to a shaky 75-3.

Kohli, the world's top-ranked ODI batsman, went for the counter-attack, hitting two fours off the last two balls of the 18th over by Zampa to underline his top form.

The 30-year-old skipper timed his innings perfectly, stitching an 81-run partnership with Shankar, who impressed during his 41-ball 46 before being run out by Zampa.

Zampa struck again soon after, dismissing Kedar Jadhav (11) and Mahendra Singh Dhoni (0) off successive balls to stun the home crowd into silence.

But Kohli looked unfettered at the other end, reaching his century with a four over backward point. 

The flamboyant captain removed his helmet and raised his bat to acknowledge the applause from the crowd and the dressing room.

Kohli's innings ended when he holed a simple catch to Stoinis off Pat Cummins who picked up four late wickets.