Cheteshwar Pujara’s unbeaten 63 gave India a firm hold on the opening test against South Africa after off-spinner Ravichandran Ashwin picked up his 13th five-wicket haul to restrict the touring side to 184 on the second day on Friday.
Pujara compiled his seventh half-century in tests to lead India to 125 for two at stumps, an overall lead of 142 in the low-scoring match.
He added 86 for the second wicket with Murali Vijay (47), who fell to an acrobatic catch at short leg by substitute fielder Temba Bavuma, after opener Shikhar Dhawan was dismissed for his second duck of the match to Vernon Philander.
India captain Virat Kohli was unbeaten on 11.
Dale Steyn, the world’s number one bowler, was troubled by a tight groin and did not take the field as a precaution in a blow to South Africa’s hopes of restricting India to a low total in the second innings.
AB de Villiers struggled initially but made a swashbuckling 63 off 83 balls to top score for his side, who conceded a first-innings lead of 17.
Left-arm spinner Ravindra Jadeja, returning to the test arena for the first time in almost 15 months, took three wickets while leg-spinner Amit Mishra picked up the other two.
South Africa, who resumed on 28-2 after dismissing the hosts for 201, appeared set for a first-innings lead through a stubborn third-wicket stand of 76 between Dean Elgar (37) and captain Hashim Amla (43) before Ashwin struck.
The 29-year-old, who had dismissed Stiaan van Zyl the previous evening, sent back Elgar after the opening batsman had kept India at bay for 75 minutes along with Amla.
Kohli opted not to open with Ashwin and Jadeja, who looked the most likely to pick up wickets on a Mohali pitch offering plenty of assistance to the spin bowlers, but soon found success once he did turn to them.
Elgar survived some nervous moments until he attempted a rash slog-sweep against Ashwin, with the ball taking a top edge and falling into the hands of Jadeja at short third man.
Amla looked unperturbed and displayed a solid technique against the Indian slow bowlers before he fell in a freakish way to the off-spinner.
The right-hander danced down the track but missed the ball, which hit wicketkeeper Wriddhiman Saha’s chest to drop on the off-stump with Amla short of his crease.
Ashwin also dismissed wicketkeeper Dane Vilas (1) in the same over for his fourth wicket, after the batsman top-edged a sweep for Jadeja to complete a tumbling catch at short fine leg.
De Villiers survived a confident appeal for caught behind off Jadeja before he had opened his account and after a few more loud leg before appeals against him were turned down, the 31-year-old finally edged the left-arm spinner to Kohli.
However, he was given not out after replays showed the bowler had marginally overstepped during the delivery.
De Villiers then went on the attack and completed his 37th fifty in tests before getting bowled by a beautiful delivery from Mishra.