It was heartbreak for India as they suffered a seven wicket loss in the third and final Test to go down 1-2 in the Test series in South Africa.
After their emphatic 113-run win in the series opener, many predicted India to finally win their first-ever Test series in South Africa, but the hosts turned things around in great style.
India were dealt a big blow as Captain Virat Kohli had to pull out of the second Test because of back spasms.
South Africa Captain Dean Elgar led from the front with an unbeaten 96 to level things in Johannesburg, before they dashed India's hope in Cape Town.
The batting was a huge letdown as India went down in the series-deciding third Test, which saw them squander their best opportunity to break their duck in South Africa.
Seniors like Ajinkya Rahane and Cheteshwar Pujara came in for a lot of flak for their below-par showing with the bat, while Jasprit Bumrah also failed to live up to expectations in seamer-friendly conditions and outdone by inexperienced South African pacers Marco Jansen and Lungi Ngidi.
Harish Kotian/Rediff.com's report card on the South Africa Test series:
Virat Kohli (5/10)
Virat is going through the worst phase of his career, with tough recent months on and off the field.
He could not impose himself with the bat against the inexperienced South African bowling line-up which had Kagiso Rabada as the only genuine threat with the ball.
He fell playing loose shots in both innings of the first Test after scoring 35 and 18 and was pilloried for loose strokes which caused his downfall.
He batted with extreme caution in the third Test at Cape Town, scoring a patient 79 from 201 balls in the first innings and followed it up with a painstaking 29 from 143 balls.
His captaincy left a lot to be desired in the third Test. His outburst after a controversial DRS call went South Africa's way was uncalled for, especially from an experienced captain who has led India in 68 Tests.
Virat tallied 161 runs from two Tests at an average of 40. What will disappoint him most is his team could not get the better of an inexperienced South African side.
K L Rahul (7/10)
Rahul started off well with a century in the first Test in Centurion and a half-century in the next in Johannesburg. But he failed to deliver with the bat in the third Test.
He fell cheaply in Cape Town, both times caught behind after scoring 12 and 10.
Leading the side in Kohli's absence, Rahul showed he has a lot to learn when it comes to captaincy as South Africa staged a superb comeback in the second Test.
Rahul was India's top run-getter in the series with 226 runs at an average of 40.
Mayank Agarwal (4/10)
Like his buddy and opening partner, Mayank started off brightly but faded at the the end of the series.
He started with a good innings of 60, but failed to carry on the form.
Mayank got off to starts, scoring 26 and 23 in Johannesburg, but managed just 15 and 7 in the last match.
He failed to make most of the rare opportunity he got in place of the injured Rohit Sharma, as he tallied 135 runs in the three Tests at an average of 22.
Cheteshwar Pujara (2/10)
Pujara's struggles with the bat continued in South Africa.
He made a brisk half-century in a losing cause in the second Test and a solid 43 in the next match, but other than that he had nothing to show for the series.
The normally dependable batsman scored just 124 runs in the series at an average of 20, with just one half-century.
With India finishing on the losing side, Pujara could pay the price for a below-par performance.
Ajinkya Rahane (2/10)
Rahane must consider himself lucky to have started ahead of Shreyas Iyer and Hanuma Vihari in South Africa.
He started off with a confident 48 in the first Test, then stroked 58 in the next, but failed in the all-important third game.
With 136 runs at an average of 22, Rahane is likely to be dropped for the next series, against Sri Lanka at home.
Hanuma Vihari (6/10)
Hanuma Vihari came in for the second Test in place of the injured Virat Kohli.
Vihari fell for 20 in the first innings before he played a crucial innings of 40 not out in the next innings despite lack of support at the other end.
Unfortunately, he was axed for the series decider after Kohli returned to the side.
Rishabh Pant (7/10)
Pant finished off with a bang, smashing a century in the final Test to make up for his hugely disappointing showing in the first two games.
The wicket-keeper got a lot of flak after throwing his wicket away with a poor shot in the second Test.
But he bounced back in style, hitting 100 not out as he single-handedly rescued India in the second innings of the Cape Town Test after the top order crumbled cheaply.
Pant finished with 186 runs at an average of 37, while taking 13 catches.
Shardul Thakur (7/10)
Thakur had some impressive performances with the ball, but couldn't make an impact with the bat.
He picked up two wickets in the first Test before taking a career-best 7/61 in the first innings of the second match, the best by an Indian bowler against South Africa.
He took just a wicket each in the two innings of the third Test while scoring a paltry 17 runs.
Overall, he finished with 12 wickets -- the same as Jasprit Bumrah but at a better strike rate of 36.
He scored just 59 runs with the bat at an average of 9, which impacted India as they fielded five specialist batsmen in the three games.
Ravichandran Ashwin (4/10)
Playing a supporting act in seamer-friendly conditions, Ashwin finished with just three wickets in the series at an average of 60.
He failed to bag a single wicket in 20 overs bowled in the final match in Cape Town.
With the middle order not faring well, a lot was expected of Ashwin with the bat, but he struggled to make an impact. He played a good hand of 46 in the second Test, but perished cheaply in both innings of the third Test.
Jasprit Bumrah (6/10)
In a series dominated by pace bowlers, Jasprit Bumrah will rue not making an impact with the ball.
India's premier fast bowler managed just six wickets in the first two Tests. He was especially disappointing in the second innings of the second Test when India were unable to stop South Africa from chasing down 240 on a tough pitch.
He bounced back with five wickets in South Africa's first innings in the third Test but once again was unable to bowl India to victory in the second innings as the South Africans easily chased down 212.
He finished the series with 12 wickets at an average of 23.
In contrast, Kagiso Rabada played a major role in helping South Africa bounce back after the opening Test loss, with 20 wickets at an average of 19.
Marco Jansen and Lungi Ngidi also finished with more wickets than Bumrah!
Mohammed Shami (8/10)
Shami bowled his heart out in South Africa.
Old ball or new ball, first spell or last spell, Shami was relentless as he proved the most difficult bowler for the South African batsmen.
He started the series on the right note, with five wickets in the first innings, and followed it up with three in the next innings to bowl India to victory.
He continued to chip away at the wickets in the next two Tests, but with Bumrah not striking as usual and the other bowlers not chipping in much, he was left with too much to do.
Shami was India's most successful bowler with 14 wickets at an average of 21.
Mohammed Siraj (4/10)
Siraj took three wickets in the first Test and played the perfect foil for Bumrah and Shami.
An injury in the second Test affected his bowling and he could send down only 15.5 overs in the game before he missed the third match.
Umesh Yadav (1/10)
Umesh was picked ahead of the experienced Ishant Sharma for the third Test, but didn't make an impact.
He took two wickets in the first innings, but went for 64 runs in 16 overs; in the second innings he went wicketless and gave away runs easily.
Photographs: Getty Images