India, chasing 304 for victory, needed 11 to win off the final over with MS Dhoni on strike. 20-year-old Proteas' paceman Kagiso Rabada took 2 wickets in two balls (Dhoni and Stuart Binny) to bowl South Africa to a series lead of 1-0.
Here are the statistical highlights of the match
# Faf du Plessis (62 off 77 balls) has recorded his highest score vs India in ODIs, eclipsing the 60 at Cape Town on January 18, 2011.
# du Plessis' third half century against India is his 17th in ODIs.
# du Plessis has averaged fifty-plus in consecutive years in ODIs - 790 (ave.52.66), including three hundreds and four fifties, in 15 ODIs in 2014 and 623 (ave.51.91), including a hundred and six fifties, in 16 matches in 2015
# Bhuvneshwar Kumar (10-0-67-0), for the first time, has failed to capture a wicket in India despite conceding 60 runs or more in an ODI. On two other occasions, he had conceded 60-plus runs without taking a single wicket - 10-0-68-0 vs South Africa at Johannesburg on December 5, 2013 and 10-0-62-0 vs New Zealand at Hamilton on January 28, 2014.
# Stuart Binny (8-0-63-0) has registered his worst bowling performance in an ODI. For the first time in an ODI, he has conceded 21 runs in an over, including two sixes and two fours.
# South Africa's five-run exciting victory is their smallest in terms of runs vs India in ODIs, obliterating the 10-run victory at Nagpur on March 19, 2000.
# South Africa have recorded the first ever total of 300 or more by any team in ODIs at Green Park Stadium, Kanpur, outstripping India's 294 for six vs Pakistan on November 11, 2007.
# South Africa have registered six totals of 300 or more in ODIs in India - five vs India and one vs Netherlands - their highest in India being 365 for two vs India at Ahmedabad on February 27, 2010.
# India's 298 for seven is their second highest losing total vs South Africa behind the 310 at Nagpur on March 19, 2000.
# India's above total is their highest ever in ODIs in Kanpur's Green Park, surpassing the 294 for six vs Pakistan on November 11, 2007.
# Quinton de Kock is averaging 75.60 vs India in ODIs - his tally being 378 in five innings. He had become one of the three South African batsmen to post three hundreds in consecutive innings - the first two being Herschelle Gibbs and Abraham de Villiers. de Kock had accomplished the feat in the last bilateral series vs India in South Africa in December 2013 - 135 at Johannesburg on December 5, 106 at Durban on December 8 and 101 at Centurion on December 11.
# Hashim Amla has completed his 1,000 runs in ODIs this year - his tally being 1010 (ave.59.41) in 19 matches, including four hundreds and three fifties.
# Amla, for the second time, has managed 1,000 runs in a calendar year in ODIs - the first instance being 1058 (ave.75.57) in 15 matches, including five hundreds and four fifties, in 2010.
# Ajinkya Rahane's 60 off 82 balls is his second fifty vs South Africa - his eleventh in ODIs.
# Rohit Sharma's 150 off 133 balls is the second highest by an Indian batsman against South Africa in ODIs behind Sachin Tendulkar's 200 not out off 147 balls at Gwalior on February 24, 2010.
# Rohit's 150 is the second highest losing score by an Indian batsman in ODIs behind Sachin Tendulkar's 175 off 141 balls vs Australia at Hyderabad on November 5, 2009.
# Rohit is averaging 69.26 in 29 ODIs on Indian soil - his tally being 1593, including four hundreds and seven fifties.
# Rohit is the only Indian batsman to have recorded fifty-plus average in three successive calendar years in ODIs - 52.00 in 2013; 52.54 in 2014 and 59.16 in 2015.
# Abraham de Villiers' second Man of the Match award vs India is his 24th in ODIs. Only one South African has got more MOM awards than de Villiers - Jacques Kallis (32).
# de Villiers has received six MOM awards in ODIs this year - three vs West Indies and one each vs India, UAE and New Zealand. His tally is the highest by any player this year in ODIs.
# de Villiers is the fourth South African batsman to manage 1,000 runs vs India in ODIs - his tally being 1025 (ave.51.25) in 24 matches, joining Jacques Kallis (1535), Gary Kirsten (1377) and Herschelle Gibbs (1064).
# de Villiers is the fourth captain to hit ten hundreds or more in ODIs, joining Australia's Ricky Ponting (22), India's Sourav Ganguly (11) and Sri Lanka's Sanath Jayasuriya (10).
# With 21 centuries, de Villiers has equalled a South African record for most centuries in ODIs, joining Herschelle Gibbs and Hashim Amla.
# In his last seven innings, de Villiers has registered five centuries in ODIs on Indian soil. His scores being 114 not out vs India at Gwalior on February 24, 2010, 102 not out vs India at Ahmedabad on February 27, 2010, 107 not out vs West Indies at Delhi on February 24, 2011, 134 vs Netherlands at Mohali on March 3, 2011, 25 vs England at Chennai on March 6, 2011; 52 vs India at Nagpur on March 12, 2011 and 104 not out vs India at Kanpur on October 11, 2015. De Villiers is the third visiting batsman to hit five centuries or more on Indian soil in ODIs, joining Chris Gayle (6) and Ricky Ponting (5).
# Rahane and Rohit put on 149 for the second wicket - the highest by any pair for the second wicket at Green Park, Kanpur, eclipsing the 117 between Kieran Powell and Marlon Samuels for West Indies vs India on November 27, 2013.
# In all five century stands have been recorded for India for the second wicket vs South Africa in India in ODIs.
# Seven century stands have been recorded for India while chasing vs south Africa in ODIs - four for the first wicket, two for the second wicket and one for the ninth wicket.
# After hitting a century (107 off 126 balls vs Pakistan at Adelaide on February 15, 2015), Virat Kohli is without a half century in eleven consecutive innings - an unwanted feat registered by him for the first time in ODIs.
# Kohli's performance of 389 runs in 16 innings at an average of 29.92 is his worst in a calendar year in ODIs.
# South Africa had added 53 runs without losing any wicket in their last three overs = from 250/5 to 303/5 - as compared to India's 25 losing two wickets - 273/5 to 298/7.
# 65 runs off 29 balls for the unbroken sixth wicket stand were added - the run-rate being 13.44 - the fourth highest for any wicket on Indian soil (minimum 50 runs). The highest run-rate in an ODI in India being 16.56 (69 runs off 25 balls) for the fourth wicket by Nathan McCullum and Ross Taylor for New Zealand vs Canada at Mumbai on March 13, 2011.