South Africa 189 for 5 (Bosch 58, du Preez 57, Kapp 36*, Gayakwad 3-13) beat India 188 (Raj 79*, de Klerk 3-35) by five wickets
It wasn't straightforward, it wasn't pretty, but it is one of those wins that would give South Africa immense satisfaction. On a turning track, where a modest 188, made largely thanks to Mithali Raj's battling 79 and Rajeshwari Gayakwad's magnificent 3 for 13, the visitors dug deep to carve out a five-wicket win to take the series 4-1.
The victory was set up by Mignon du Preez and Anneke Bosch, who hit half-centuries in a 96-run fourth-wicket stand. It was crucial coming at the time it did, because the visitors had been reduced to 27 for 3 in the 11th over, with the ball jumping off the rough created at one end by left-arm seamer Monica Patel. South Africa have now won 10 of their last 11 ODIs, winning back-to-back series against New Zealand, Pakistan and now India.
But they would've been nervy at the start. Opening the bowling, Gayakwad defeated Laura Woolvaardt with sharp turn as substitute fielder Jemimah Rodrigues took a sharp catch at slip in the second over. In the fourth, Gayakwad beat Lara Goodall with sharp turn to trap her lbw. But after a three-over spell, Gayakwad was taken off the attack to give inexperienced Patel, playing in just her second game, a spell.
Although India struck soon enough, in the 12th over, when D Hemalatha beat Sune Luus in the air and off the deck, they couldn't sustain the pressure. In looking to attack, the inexperienced spinners conceded more runs than they would have ideally liked.
In the absence of Poonam Yadav, the frontline spinner, Deepti Sharma and Harmanpreet Kaur, who earlier in the day injured her hip flexor to be ruled out of the game, the responsibility was on debutant C Prathyusha and Hemalatha to offer maximum support to strike bowler Gayakwad. It proved a task too steep as their inexperience showed.
Wristspinner Pratyusha, who has a quick-arm action, struggled to land the ball at drivable lengths, which made it easy for du Preez and Bosch to pick her away both off the front and back foot. Bosch was particularly aggressive, looking to clear the infield by getting to the pitch time and again. du Preez, meanwhile, showed all her experience by using the pace to play cheeky paddles.
Their industrious partnership meant the score kept ticking along, forcing Raj to keep going back to her two trump cards Goswami and Gayakwad from time-to-time Gayakwad had bowled out going into the last 10, with South Africa still needing 36. This helped Marizanne Kapp guide Nadine de Klerk through the tricky phase with the target within touching distance.
Things may have yet been interesting had Goswami taken a catch to remove Kapp at long-off with South Africa still needing 32. South Africa would've been six down. It would've also come quickly on the back of the wickets of Bosch and du Preez, who fell in the space of 15 deliveries, to Gayakwad and Prathyusha respectively.
The missed opportunity had a deflating effect; Pratyusha who should've had her second wicket finished with 1 for 60 off nine overs instead. With Patel unable to have any kind of stranglehold over the batters, Kapp calmly wiped off the remainder of the runs with 12 balls to spare, with India forced to rue their batting lapses.
That they took the fight till the end was thanks to Mithali Raj's rescue act after the rest of the batting stuttered yet again. The lone ranger who has carried the India middle order for much of her career, Raj hit her 55th ODI half-century after being put into bat by South Africa.
The loss apart, India may also be staring at another major worry ahead of the T20Is, with Kaur, the designated captain for the shortest format, having to retire hurt after a hip-flexor injury. Pushed ahead of Raj to No. 4 on the day, Kaur had settled in to put together a half-century stand with her captain, before retiring out in the 31st over just as India looked to launch.
It proved to be a huge setback, after they appeared to have overcome the early losses of Smriti Mandhana, Priya Punia and Punam Raut, India's highest run-getter, with the scoreboard reading 53 for 3 in the 13th over.
Hemalatha, in her first game after replacing Deepti struggled to wriggle out of a hole she dug herself into. Taking 12 balls to get off the mark, she survived an ugly hoick before nicking one to the wicketkeeper two balls later. Then the returning Sushma Verma, picked ahead of Taniya Bhatia, did little to prove her batting credentials, given out lbw to de Klerk.
India's slow middle order consolidation also allowed Sune Luus to get her fifth bowling options - de Klerk and Bosch - to dictate terms; their 16 overs went for just 61 runs for three wickets, all reward for de Klerk's accurate medium pace.
In the face of this meltdown, Raj, who took her time, like she does, focused on holding one end up even if strike-rotation proved difficult initially. And while debates continue over whether she should be accelerating a lot more upfront, India's middle and lower order did her no favours by collapsing the way they did to give the team management plenty to think of in terms of their approach In the face of a changing game leading into next year's 50-over World Cup.

Shashank Kishore is a senior sub-editor at ESPNcricinfo