Kallis retired from Test cricket with a century on his final appearance as the hosts finished off India on the final day.
The 38-year-old, who had announced on Christmas Day he would be retiring from Test cricket at the end of the series, scored 115 to mark his final match with his 45th century in the longest form of the international game.
After 18 years as a Test cricketer which saw him score 13,289 runs in 166 matches, taking 292 wickets and 200 catches, Kallis admitted it had not been an easy decision to make.
"It was a tough call. There are some days when you wake up and you know it's the right time," Kallis told Sky Sports.
" I just know it was the right time and what a way to finish it off. It's been incredible, the way the people have come out to support me, the way Cricket South Africa have made it a special game, my team-mates have made it a special game.
"I couldn't ask for a better exit."
Kallis added: "The cricket you will miss for sure but the friendships, the winning times, the tough times. All that in the changing room. That always sticks out."
South Africa captain Graeme Smith said he would cherish his memories of the time he spent with Kallis in Test matches.
"We've enjoyed times in many, many changing rooms, tough environments around the world and we've had many victories for the Proteas," said Smith.
"But I think that the thing that stands out is he's a really outstanding human being. He's been a privilege to get to know and as a friend and I think that's what counts."
India captain Mahendra Singh Dhoni said Kallis had given South Africa the luxury of having such a fine all-round player to call on.
Dhoni added : "He has been a fantastic cricketer, not only as a batsman but also as a bowler.
"The amount of catches that he has taken and the luxury that he has given to South African cricket to have a fast bowling all-rounder and a top-order batsman at the same time.
"I think it was a real luxury for them to have him in their side. He has given a lot to cricket, carrying South African cricket forward for a long time."
South Africa went into the final day needing to take eight wickets to set up a victory which would take the series after the first Test in Johannesburg was drawn.
India were dismissed in their second innings for 223 during the afternoon session.
Robin Peterson finished with four wickets and Vernon Philander and Dale Steyn with three apiece to leave the home side needing 58 runs to win.
Alviro Petersen (31 not out) and Smith (27no) steered the Proteas to 59 without loss and a comfortable win.