Left-arm spinner Steve O'Keefe grabbed a career-best haul of 6-35 before Australia lost two early wickets in their second innings against India in the first Test in Pune Friday.

O'Keefe, whose six wickets came off just 24 balls, helped Australia bundle India out for only 105 in the afternoon session of day two before the visitors reached 46-2 at tea.

Skipper Steve Smith on 27 and Peter Handscomb on eight were at the crease as Australia stretched their lead to 201 runs after Indian spinner Ravichandran Ashwin removed the Aussie openers early.

Ashwin trapped both David Warner (10) and Shaun Marsh (0) lbw on a viciously turning track at India's newest Test venue, the Maharashtra Cricket Association Stadium, taking the number of wickets on Friday to 13.

But it was O'Keefe who earlier stole the show with a blitz of wickets after lunch that saw India's middle and lower order crumble as the hosts conceded a 155-run first innings lead.

The 32-year-old's stunning exploits put Australia in charge of the first match of the four-Test series but it was a day to forget for Indian captain Virat Kohli, who was dismissed for a rare duck.

Kohli, who has hit four double centuries since July last year, walked after just two deliveries for his first duck since a Test against England in August 2014.

Paceman Mitchell Starc, who had already made an impact with his gritty 61 in Australia's first innings score of 260, took two wickets including the prized scalp of Kohli.

Indian opener Lokesh Rahul top-scored for the home side with a gritty 64 as eight Indian batsmen failed to get into double figures.