Spinner Steve O'Keefe finished with 12 wickets as Australia ended India's 19-Test unbeaten streak with a crushing 333-run triumph within three days in Pune.

O'Keefe, 32, followed up his first-innings six for 35 with identical figures in the second as the hosts were skittled for 107. Fellow spinner Nathan Lyon snared the other four wickets.

Australia captain Steve Smith had earlier posted his 18th Test hundred - his first in India - to help his team pull away to 285, setting the home team a daunting victory target of 441.

The result, in the first Test of a four-match series, was Australia's first win on Indian soil since 2004.

Having secured a first-innings lead of 155 on day two by dismissing the hosts for just 105, the tourists resumed their second innings on 143 for four on Saturday with Smith and Mitchell Marsh in the middle.

Marsh departed for 31 to Ravindra Jadeja, but there was no stopping Smith, who had ridden his luck in being dropped three times on Friday, but played superbly for a cherished first Ton in India.

The milestone arrived thanks to a drive to deep cover off Jadeja which yielded two runs, prompting the Australia skipper to take off his helmet and punch the air in delight.

Steve O'Keefe claimed career best figures as Australia romped to victory (AP)

He nudged Australia's lead to the 400 mark before being dismissed three balls later, trapped lbw by Jadeja for 109.

Matthew Wade (20) and Mitchell Starc (30) also helped boost the Australia total, which, it turned out, was already way beyond their hosts.

India may have thought it could not get much worse with the bat after their first-innings demise came in just 40.1 overs, but the second took only 33.5.

O'Keefe takes the plaudits after taking six wickets again in the second innings (AP)

O'Keefe, who had managed just 14 wickets in his previous four Tests, set the tone by seeing off Murali Vijay (two) lbw in the fifth over.

Lokesh Rahul (10) followed at the hands of Lyon in the next over and, when captain Virat Kohli (13) then left a straight one from O'Keefe and had his off stump knocked back, the writing was on the wall.

O'Keefe accounted for Ajinkya Rahane (18), Ravichandran Ashwin (eight), Wriddhiman Saha (five) and Cheteshwar Pujara (31) to leave the hosts reeling on 100 for seven.

Lyon then returned to polish off the tail - Jadeja (three), Ishant Sharma (nought) and Jayant Yadav (five) - to send India tumbling to a first home Test loss since England's victory in Kolkata in December 2012.