Rohit Sharma would have watched that magician AB De Villiers do what he does best again, and thought "All right AB, I will take the challenge on and try and better your knock."

Better it he did, smashing a sumptuous 150 from 133 balls (13x4, 6x6) to send the crowd in Kanpur to delirium. However, for the second time on this tour, Rohit's magnificent hundred was not enough to give India victory, with South Africa holding on for a five-run win, thanks to some stellar final-over bowling from the nerveless youngster Kagiso Rabada.

The South Africa batting innings was stuck in second gear for the majority of the 1st ODI in Kanpur, and you felt "not bad, the India bowlers are doing pretty well, and without the help from the injured R Ashwin too."

However, with that man who goes by the name of AB De Villiers, who got one of the loudest receptions from the crowd, still in the middle come the final overs, those sixes and fours were always going to come raining in weren't they.

So it proved to be, with De Villiers (104 n.o., 73b, 5x4, 6x6) turning on the style – not to his usual utter devastating effect, but still more than effective – to help South Africa, with a little help from the excellent Farhaan Behardien (36 n.o., 19b, 5x4, 1x6), to a big score of 303 for five on a "it is turning you know" wicket.

The reply began reasonably well, with Shikhar Dhawan (23, 28b, 5x4) getting those pull shots of his to good use, but as has been the case with the left-hander of late, he flattered to deceive, even if the lbw decision, off the bowling of Morkel, was a 50-50 one.

You would have thought, at 42/1 in the eighth over, you would have thought the stage was set perfectly for one of those special Kohli innings in chases; however, Dhoni sent Ajinkya Rahane in ahead of India's best batsman, and the Mumbaikar went on to forge a 149-run partnership with Rohit for the second wicket.

It was not the greatest of knocks from Rahane (60, 82b, 5x4) – nothing like his brilliant knock against the same opposition at the World Cup earlier this year – but the right-hander stuck with Rohit and that was the key.

When Rahane fell in the 34th over, to part-timer Behardien, India were on 191/2, leaving Kohli in a tricky position. The India vice-captain is not the man you want to come in when the required run rate is at over seven, with not too many overs remaining.

Kohli can go slam-bang if he is settled at the crease, but to settle, he takes a while, making that No.4 position a tricky one for the right-hander. So it proved as well, as South Africa fought back, with Kohli and Rohit struggling for runs in the six-and-a-half overs that followed. Kohli fell to Dale Steyn off the final ball of the 40th over, giving the perfect cue for MS Dhoni to show he was still that finisher extraordinaire.

Dhoni, though, was happy to play second fiddle to Rohit, who got to his hundred off 98 balls, as the right-hander took over again, smashing those sixes with consummate ease to inch India closet and closer.

At the five-overs-to-go mark, India needed 46, with Dhoni on just 8 in 14 balls at that point. Rohit would quickly get to his 150, off 132 balls, before losing his wicket, chipping one straight back to an ecstatic Imran Tahir.

With India needing another 35 from 23 balls, it was all down to Dhoni and Suresh Raina, only for Tahir to strike again as the latter went for the slog-sweep, which was mistimed to long-on.

Dhoni and Stuart Binny at the crease it was then, with India needing 31 from 19 and all the momentum with the Proteas. A bunch of trademark Dhoni twos and the equation was 22 from 12 balls. A wonderful lap shot off Steyn in the penultimate over, gave Dhoni the boundary he needed and India needing 11 from the final over, and over that would be bowled by the 20-year-old Rabada.

With Dhoni (31, 30b, 1x4) struggling with a stomach injury, Rabada (10-0-58-2) picked up the vital wicket of the India captain, giving South Africa a nail-biting victory, with Binny also falling next ball, leaving India to get an impossible seven runs off the final ball.

Earlier, Dhoni lost, now what looks like his customary coin toss, but South Africa chose to bat first, with the visitors thinking – let's post a big total on the board and then grind them in the afternoon.

It was a decent start from the India bowlers, with Quinton de Kock and Hashim Amla not allowed to run away with the game in the Powerplay overs.

However, the batsmen did not look really troubled either, with Dhoni's wish of some early morning movement coming to naught.

That prompted the India skipper to bring on Ashwin in the ninth over, and the spin bowler answered his captain's call, bowling that perfect offspinner which found De Kock's (29, 33b, 5x4) outside edge with Suresh Raina taking a comfortable catch at first slip.

This is where India kind of allowed South Africa to get back into the game, though. Instead of going for the jugular with Ashwin (4.4-0-14-1), Dhoni decided to hold the offspinner back for AB De Villiers and the two left-handers – David Miller and JP Duminy – which in hindsight proved to be the wrong decision.

At the other end, Amit Mishra bowled wonderfully well, keeping things tight and always looking likely to pick up a wicket.

He picked up the vital one of Amla (37, 59b, 3x4) too, breaking a 59-run partnership in the process, with opener looking comfortable alongside Faf Du Plessis.

Ashwin was brought back with De Villiers, the man he dismissed twice in the T20I series, at the crease, however, it all went pear-shaped in the 32nd over, when the offspinner was forced off the field with a side strain, suffered while trying to stop a ball off his own bowling.

A bowler short – and that too his best bowler – the onus was even more on the other three main bowlers to pick up the slack, and pick it up they did as Umesh Yadav sent Du Plessis (62, 77b, 5x4, 1x6) back to the pavilion off a nice ball that tailed-in.

However, with De Villiers still at the crease and looking in that ominous "I am just waiting for the final few overs boys" mood, India still needed wickets to prevent the match from getting away from them.

Mishra dismissed Miller (13, 22b), another batsman so dangerous in the final overs, in the 41st over, bamboozling him with a flattish delivery with Dhoni whipping off the bails in a flash.

However, with De Villiers now settled, and Ashwin going back to the pavilion after just one more over, there was always going to be a final flurry, and even if Duminy (15, 17b, 1x6) was not allowed to make enough of an impact, the Superman, who got to his century off the final ball of the innings with a ridiculous six, along with Farhaan Behardien, ensured the South Africa bowlers would have a big score to defend, which they did, just about, in the end.