Hashim Alma's century helped South Africa beat India by 33 runs on Duckworth-Lewis in Pretoria and win the fifth and final one-day international to clinch the series 3-2.
The match saw two contrasting century makers, with Amla anchoring the home innings before Yusuf Pathan's blistering ton could not quite help India scrape home.
Rain reduced the match to 46 overs a side, and Amla was the star for the hosts as he made 116 not out while Morne van Wyk added a half century in South Africa's 250-9.
India faced a revised target of 268 from their 46 overs, but they quickly tumbled to 119-8 before Pathan took off and bludgeoned105 from just 70 balls to give them a sniff of an unlikely victory.
Wickets kept tumbling around Pathan though, with Morne Morkel taking four of them, and South Africa held on comfortably to claim a narrow victory in another tight series between the two sides.
After Zaheer Khan sent South Africa skipper Graeme Smith packing for just seven in the third over, India's decision to bowl first looked a good one, but van Wyk joined Amla for a 97-run partnership for the second wicket.
Van Wyk made 56 from 63 and it took a brilliant one-handed grab by Yuvraj Singh off his own bowling to finally grab a breakthrough and make it 113-2.
Yuvraj dismissed AB de Villiers for 11 four overs later as he was stumped, but Amla kept going and made his century from 113 balls before rain stopped play for over an hour after 42 overs had been bowled.
JP Duminy went for 35 after the restart, and with just four more overs left in the innings due to the revised playing conditions, South Africa went for broke but the confusion led to a late collapse with 24 runs scored for the loss of six wickets.
Munaf Patel grabbed three late wickets as five fell in the final two overs, including three in the last when both Morkel and Dale Steyn were comically run out going for singles.
India's response started poorly as Lonwabo Tsotsobe bowled Rohit Sharma for five, before Morkel (4-52) took three wickets to really put India in trouble, with Virat Kohli (two), MS Dhoni (five) and Parthiv Patel (38) all sent packing.
Yuvraj Singh made eight and Suresh Raina 11 before they were both removed by Steyn (2-32), and India stood on 74-6 inside 14 overs.
Harbhajan Singh hung around for a while to make 13 and keep Pathan company before he was caught behind off Johan Botha, and Piyush Chawla could add just eight before his wicket made it 119-8.
Zaheer finally offered some real support to Pathan, who reached 50 in just 47 balls before bringing up his hundred in just 21 more deliveries - with him hammering eight fours and eight sixes in his big-hitting knock.
Pathan hit out for 105 and his wicket ended a 100-run stand with Zaheer and left India needing fifty runs from 64 balls but with only one wicket left intact.
Zaheer eventually fell for 24 and his wicket gave South Africa the victory that also clinched the series and sends them into the World Cup in good form.