An electric partnership between David Miller and Heinrich Klaasen got South Africa off the mark in their ODI series against India with a five-wicket DLS victory in a weather-affected match at the Wanderers.
Miller made 39 off 28 balls after being dropped on six and bowled off a Yuzvendra Chahal no-ball on seven, while Klaasen (43 not out off 27) contributed to a game-changing 72-run union from 43 deliveries after the second delay due to lightning to help the Proteas reach a revised target of 202 in 28 overs.
South Africa consequently avoided a fourth successive defeat to maintain their unbeaten record in pink ODIs and now trail 3-1 in the six-match series.
India looked well placed for victory when Shikhar Dhawan (109) recorded a century in his 100th match in the 50-over format and captain Virat Kohli clocked up 75 to move up to fifth in his country's list of all-time ODI run-scorers.
Dhawan fell quickly after the first interruption and Aiden Markram's phenomenal one-handed catch to dismiss Hardik Pandya helped South Africa limit the tourists to 289-7.
AB de Villiers (26) was unable to replicate his record-breaking ton in the 2015 pink ODI on his return from a three-match lay-off due to injury, but Andile Phehlukwayo (23no from five) got the hosts over the line after Miller and Klaasen's excellent work.
Kagiso Rabada accounted for Rohit Sharma (5) for the third match in succession and sixth time on the tour with an outstanding low catch off his own bowling.
But just as they did last time out in Cape Town, Dhawan and Kohli settled the tourists with a 158-run partnership that looked set to punish South Africa.
Kohli had a narrow escape after bringing up his fifty, a leading edge slipping through the grasp of Morne Morkel as he dived to his right on his follow through, but the India captain was denied a 35th ODI century when he sent Chris Morris to cover.
Dhawan did pass triple figures but he was unable to clear De Villiers at mid-off and was removed in the second over following a delay of close to an hour to leave India at 206-3.
Markram's sensational one-handed catch as Pandya searched for the boundary through cover limited India's total and after the Proteas skipper was trapped leg before by Jasprit Bumrah on 22 in the eighth over of the chase, there was a second stoppage lasting over 90 minutes.
Hashim Amla (33) and De Villiers could not kick on after making starts but Miller - dropped by Shreyas Iyer on six - and Klaasen clicked into gear after Chahal overstepped in the 18th over to change the complexion of the match.
Miller found the ropes three times in succession off Pandya in the next set of six and Klaasen, making just his second international appearance, launched a monster of a maximum well over long-on as the tide turned.
A misfield from Kuldeep Yadav on the third-man boundary perfectly encapsulated the match slipping away from India, and although Chahal tried to atone by pinning Miller lbw, Phehlukwayo closed the match with an emphatic slog-sweep into the jubilant Johannesburg crowd.