Quinton de Kock and J P Duminy hit half-centuries before South Africa survived a late assault from Mahendra Singh Dhoni to edge past favourites India by four runs in the ICC World T20 warm-up match at the Wankhede stadium, in Mumbai, on Saturday.
Batting first, South Africa posted a huge 196 for eight in their 20 overs.
India went close with the bat, courtesy Dhoni's 30 not out from 16 balls, but Chris Morris held his nerve in the final over to restrict the hosts to 192 for three in their 20 overs.
Dhawan top-scored for India with a cracking knock of 73 from 53 balls, adding 94 runs for the fourth wicket with Suresh Raina, who stroked 41 from 26 balls before both retired at the end of the 16th over.
Earlier, South Africa batted first after the two teams mutually agreed not to hold the toss.
Quinton de Kock rallied South Africa after the early dismissal of Hashim Amla, smashing 56 from 33 balls, which included seven fours and two sixes, before he retired to give his other team mates a chance to get batting practice. He put on 77 runs for the third wicket with Duminy, who blasted 67 from 44 balls, which included six fours and three sixes.
Hardik Pandya was India's top wicket-taker, claiming three for 36, while pacers Mohammed Shami and Jasprit Bumrah bagged two wickets each. Off-spinner Ravichandran Ashwin was rested.
Bumrah struck in his first over, having Amla caught behind by wicket-keeper Mahendra Singh Dhoni for five in the third over of the innings.
De Kock had a close shave as a thick outside edge off Mohammed Shami flew to third-man, but Bumrah, charging in from the fence, failed to get to it and also conceded a boundary.
Shami, who is back in the Indian team after recovering from an injury, got the wicket of South Africa captain Faf du Plessis, who was caught at point for 12 in the fourth over.
But de Kock, in the company of Duminy, went after the Indian bowlers on a good wicket at the Wankhede stadium. The two left-handers hit two boundaries each in the fifth over of the innings, bowled by Bumrah to take the score past the 50-run mark.
India’s premier spinner Ashwin was rested for the match, Harbhajan Singh, Pawan Negi and Ravindra Jadeja being included in the team. While Harbhajan conceded just 27 runs in his four overs, Negi and Jadeja went for runs, conceding 12 runs in one over and 18 runs from two respectively.
Left-arm spinner Negi was attacked straightaway by the South Africans, Duminy hitting him for a four and de Kock slamming him for six in his very first over after which he was not called to bowl again.
De Kock cut Jadeja square on the off-side for a four to bring up his fifty from 28 balls as the visitors raced to 95 for two in 10 overs.
There were fireworks from both ends. Duminy hoisted Jadeja over mid-wicket for a huge six which went into the second tier of the Wankhede's North End.
De Kock retired after a good knock of 56 from 33 balls, including seven fours and two sixes, after he had put on 77 runs from 49 balls for the third wicket.
With Negi going for runs in his first over, Dhoni decided to try out part-time spinner Suresh Raina, but even he went for 13 in his only over.
Duminy continued to attack the Indian bowlers, racing to his fifty off 36 balls.
Pandya scored 18 from 11 balls before Pandya had him caught behind for 18. The medium pacer also accounted for the wickets of Rilee Rossouw (11) and David Wiese (0) in his final over to finish with three for 36 in his four overs.
India’s death overs' specialist Bumrah sent Chris Morris’s stumps crashing with a good yorker in the penultimate over. He finished with expensive figures of two for 51 in his four overs.
Shami bagged the wicket of Duminy, who was caught at deep mid-wicket after a fine innings of 67 from 44 balls, laced with six fours and three sixes, which helped India prevent the Proteas from crossing the 200-run mark.
Opener Rohit Sharma got India off to a rousing start, cutting Steyn for a six followed by a four in the first over of the innings.
However, Rohit’s promising start was cut short as he was trapped leg before wicket by Kyle Abbott in the second over.
In the next over, Steyn had batting mainstay Virat Kohli caught behind for one, leaving India in trouble at 20 for two after three overs.
Dhawan broke the shackles as he hit Abbott for two boundaries in the fourth over and Ajinkya Rahane repeated the dose in the next, bowled by Morris.
India recovered slightly after the loss of early wickets to reach 47 for two in six overs at the end of the Powerplay.
However, leg-spinner Imran Tahir struck in his first over, foxing Rahane with the googly which beat his defences and bowled him for 11.
Spinner Aaron Phangiso was hit for 13 in his first over, Raina launching him over mid-wicket for a huge six to take the score to 84 for three in 10 overs, with another 113 needed from 60 balls for victory.
Meanwhile, Dhawan continued to keep the runs coming as he raced to his half-century off 35 balls with a boundary off Tahir in the 12th over.
The Indian batsmen went after Wiese in the 13th over, hitting the tall pacer for 18 runs, with Dhawan hitting a four and Raina stroking him for a four and a six.
Raina and Dhawan kept hitting boundaries at regular intervals to keep India afloat in the middle overs. The hosts reached 137 for three in 15 overs, needing 60 runs from the remaining 30 deliveries for victory, quite achievable, considering that they still had seven wickets in hand.
Dhawan got a reprieve when he was dropped on 71 at deep mid-wicket off Abbott in the 16th over.
But he didn’t continue at the crease much longer. With India on 142-3 in 16 overs and needing 55 from four overs for victory, Dhoni made a surprise decision to retire both Dhawan and Raina.
Dhoni got into the act immediately as he smashed Morris for two successive boundaries in the 17th over.
He went after Steyn, blasting him for a huge six over the fine leg region before steering a wide delivery past point for a four.
Steyn was hit for 15 runs in his final over as India managed to bring the equation down to 28 from two overs for victory.
Yuvraj Singh’s six off the final ball of the 19th over, bowled by Abbott, left India with 14 runs to score off the final over for victory.
Morris held his nerve in the final over as South Africa managed to squeeze a narrow victory against India and get a much-needed psychological boost ahead of the World T20.
Dhoni stroked 73 from 53 balls, hitting 10 fours, while Raina scored 41 from 26, the duo smashing 94 runs for the fourth wicket.
Brief scores:
South Africa 196-8 in 20 overs (JP Duminy 67, Quinton de Kock 56, H Pandya 4-33).
India 192-3 in 20 overs (S Dhawan 73, S Raina 41, M S Dhoni 30, I Tahir 1-25).
7 batsmen you can't afford to miss in World T20
Everything you want to know about the World T20 venues
Numbers game: Who has the highest WorldT20 average? Kohli or KP?
6 shots that changed cricket
WT20: Fit-again Shami shows glimpses of yore at India nets