Rohit Sharma and Virat Kohli delivered sensational performances as they led India to a seven-wicket triumph over Australia, meaning the hosts clinched the three-match ODI series 2-1 despite Steve Smith's century in Bengaluru.

Smith's 131 and 54 from Marnus Labuschagne provided the highlights of Australia's innings after Aaron Finch elected to bat first, but India restricted their opponents to 286-9.

India were hampered by the loss of Shikhar Dhawan for their reply, the opener's shoulder injury casting his participation in the upcoming tour of New Zealand into doubt.

However, once Smith's resistance ended amid a flurry of late wickets, Rohit (119) and Kohli (89) guided their side to an emphatic win, completed with 15 balls to spare.

Dhawan had to leave the field early in Australia's innings and he was duly sent for an x-ray on his left shoulder, which he hurt while diving in the field.

By that stage India already had their tails up, with Mohammed Shami (4-63) having drawn David Warner (3) into a reckless shot outside off that yielded an edge behind to KL Rahul.

India had their second wicket soon after – a mix-up between Smith and Finch resulting in the latter being run out for 19.

Smith, with support from Labuschagne, made up for his mistake, the duo both working their way to half-centuries and propelling Australia to 173-2 midway through the 32nd over.

Ravindra Jadeja claimed the breakthrough wicket, though, with Kohli taking an excellent catch low to his right to dismiss Labuschagne, and the promoted Mitchell Starc fell to the same bowler three balls later.

From looking well poised, Australia were now on the back foot and, though Alex Carey (35) offered a decent cameo, the emphasis was all on Smith.

The 30-year-old – who had surpassed 4,000 ODI runs in the 34th over – brought up his ninth one-day hundred with a crisp single, and then let rip, hitting four boundaries before succumbing to Shami.

However, Australia were unable to get up to 300 as Shami also removed Pat Cummins and Adam Zampa at the death.

Despite being shorn of the injured Dhawan, India swiftly got into their stride in reply, Rohit looking in superb touch either side of the loss of Rahul (19) to Ashton Agar in the 13th over.

Rohit, who made 209 from 158 balls against Australia in Bengaluru seven years ago, set about targeting Ashton Agar and Labuschagne – who he hit for a huge six – as captain Kohli also clicked into gear.

A single to third man off Josh Hazlewood took Rohit to another glorious hundred, his eighth against Australia, and his sixth maximum brought up the century partnership before he finally fell to Zampa.

At that point, India needed just 81 from 13.2 overs and Shreyas Iyer (44 not out) quickly settled in alongside Kohli to make victory certain, despite the captain falling to Hazlewood with 13 still required.