Rohit, Kuldeep guide India to unprecedented series win in South Africa
But the joy was shortlived for the Proteas, with Pandya showing his magic in the field this time with a brilliant direct throw to dismiss Amla.
Chinaman Kuldeep Yadav soon joined the party dismissing any chances of a South African comeback with the wickets of Andile Phehlukwayo (0), Kagiso Rabada (3), Heinrich Klaasen (39) and Tabraiz Shamsi (0) to reduce the hosts from 166/5 to 197/9.
Chahal then came back to trap last man Morne Morkel (1) as the visitors erupted in joy.
Earlier, India rode on Rohit's 126-ball 115, laced with 11 boundaries and four sixes to post 274/7 even after the lower order failed to capitalise on the brilliant start.
Rohit became the fourth highest century scorer in ODIs for India, after Sachin Tendulkar (49), Virat Kohli (34) and Sourav Ganguly (22).
For South Africa, Lungisani Ngidi was the pick of the bowlers returning figures of 4/51 while Kagiso Rabada picked up a wicket.
Asked to bat, openers Shikhar Dhawan (34) and Rohit got India off to a decent start before the former was removed by Rabada.
Rohit, who struggled to score in all the four previous games started his innings in similar fashion.
However, a boundary and a hit over the fence in back-to-back overs set the momentum for the Mumbai batsman, who did not look back.
Rohit, however, was involved in two unfortunate run-outs -- first with skipper Virat Kohli (36) after sharing a 105-run second wicket stand and then Ajinkya Rahane (8), who fell victim to Rohit's mistimed call.
Despite that, the Mumbaikar continued his flow of runs to bring up his century in the 36th over after he got a lucky escape batting on 96 being dropped by Tabraiz Shamsi.
Incoming batsman Shreyas Iyer (30) played the perfect second fiddle to Rohit, engaging in a 60-run fourth wicket stand before Ngidi struck with the wicket of the centurion.
Ngidi continued his magic spell, scalping Hardik Pandya (0) next ball before former captain Mahendra Singh Dhoni walked into the middle.
But Ngidi kept intimidating the Indians and was successful in seeing the back of Iyer before packing back Dhoni for 13 runs even as Bhuvneshwar Kumar (19 not out) contributed some important runs to help the team to a healthy total.
Brief scores: India 274/7 (Rohit Sharma 115, Virat Kohli 36, Shikhar Dhawan 34; Lungisani Ngidi 3/35) beat South Africa 201 (Hashim Amla 71, Heinrich Klaasen 39, Kuldeep Yadav 4/51, Hardik Pandya 2/30) by 73 runs.