Jaiswal, who played second fiddle in an opening stand of 155 with Rohit Sharma (75), smashed an unbeaten 116 as India chased down a 271-run target with more than 10 overs to spare.
Earlier, Quinton de Kock struck a brisk 106, yet South Africa were dismissed for a below‑par 270 in the 48th over.
In a notable prelude, India ended a luckless sequence of 20 consecutive lost tosses in ODIs.
Skipper KL Rahul punched the air to celebrate that, and elected to field to spare his bowlers the predicament of having to operate with a wet ball once the evening dew set in.
South Africa's innings began shakily with the early departure of Ryan Rickelton but De Kock and Temba Bavuma, who made 48, forged a century stand to steady their innings.
Ravindra Jadeja removed Bavuma to break the partnership, and Prasidh Krishna (4‑66), who bled 27 in his first two overs, returned to dismiss Matthew Breetzke, Aiden Markram, and De Kock in a decisive spell to turn the match on its head.
Left‑arm wrist‑spinner Kuldeep Yadav (4‑41) then cleaned up the tail, consigning South Africa to their first sub‑300 total of the series.
India, who lost the preceding test series 2-0, began strongly in their chase with Rohit leading their charge.
The 38-year-old former India captain compiled a polished 75 -- his fourth fifty-plus score in five innings -- anchoring a big opening stand with Jaiswal, who was happy to bide time at the other end.
Rohit departed after fluffing his slog-sweep against spinner Keshav Maharaj but Jaiswal went on to become the sixth Indian to hit a hundred in all three international formats of the game.
Virat Kohli, now active exclusively in the ODI format like Rohit, walked out to thunderous applause and made a typically fluent 65 not out, which followed his hundreds in Ranchi and Raipur.
