India's hopes of winning a Test series in South Africa for the first time were dashed within three days as they suffered an innings and 32 runs defeat at SuperSport Park in Centurion on Thursday.
With only two matches in the series, India can, at best, achieve a draw if they win the second Test starting in Cape Town on Wednesday.
In their second inning, India slumped to 131 all out after conceding a 163-run first-inning lead.
A day that began with the match evenly balanced turned into a rout for the tourists.
Dean Elgar (185) and Marco Jansen (84 not out) turned a narrow 11-run lead for South Africa at the start of play into a commanding position.
They shared a 111-run sixth-wicket partnership as South Africa, despite the absence of injured captain Temba Bavuma, progressed from an overnight 256 for five to 408 all out.
Virat Kohli played an aggressive innings of 76 for India before being the last man out, but the rest of the batting collapsed against South Africa's fast bowlers on a lively pitch.
The second inning lasted just 34.1 overs. Kohli hit 12 fours and a six in an 82-ball inning. Shubman Gill made 26, but no other batsman scored more than six.
Kagiso Rabada set the tone for South Africa, dismissing Sharma for a duck with a superb delivery that deviated off the pitch to hit the off stump.
Rabada, who took five for 59 in the first inning, took two for 32 and ended the match with an outstanding diving catch at long-on to dismiss Kohli off Jansen, who took three for 36.
'Special'
Left-arm fast bowler Nandre Burger completed an impressive debut Test by taking four for 33, giving him match figures of seven for 83.
Three catches went down in the slip cordon, but none proved expensive.
Elgar was named the man of the match in his final Test on his home ground. He announced he would retire from international cricket after the second Test.
“It was pretty special for me,” he said.
“It (the pitch) was pretty juicy. You’ve got to keep it nice and simple when batting in tests. Focus on the ball, play straight, and play late.”
India was unable to follow this policy, although Sharma paid tribute to KL Rahul for his “brilliant” century in the first innings.
Bavuma took no further part in the match after injuring his left hamstring on the first morning. A statement from Cricket South Africa said it had been decided he would not bat because of concern about aggravating the injury.
There was no indication of whether Bavuma would be fit for the second test.
Elgar captained the team on the field after Bavuma’s injury, and having captained South Africa in 17 Tests, he would be the favourite to take over the leadership in his final Test if Bavuma is not fit.