Here are his three-figure innings against India in chronological order:
121 at Kolkata in November 2004
On the very first day of the match, Kallis scored his 17th Test hundred while occupying the crease for almost 400 minutes, facing 259 deliveries and hitting 12 fours. He was the only centurion in the match but even his hundred and 55 in the second innings could not prevent his team from losing the game by eight wickets.
132 at Ahmedabad in April 2008
On an easy paced pitch, Kallis batted for six hours, faced 275 balls and hit 14 fours and a six during his knock of 132 which was his 30th ton. He was associated in a record 256-run stand with AB de Villiers for the fifth wicket. He helped South Africa post a resounding victory — by an innings and 90 runs to take 1-0 lead in the three-match series.
173 at Nagpur in February 2010
Played a dashing innings and reached a hundred out of South Africa’s 149 for two. This was his 34th Test century which placed him joint third on the all-time list with Sunil Gavaskar and Brian Lara, behind only Ricky Ponting (39) and Sachin Tendulkar (45). Eventually he batted for 419 minutes, faced 351 balls and posted 15 fours and two sixes. South Africa won by an innings and six runs inside four days.
201* at Centurion in Dec 2010
South Africa posted yet another innings victory with Kallis being the architect as he slammed his first double hundred. He batted for 389 minutes, faced 270 deliveries and cracked 15 fours and five sixes. His 130-ball century was the fastest of the 38 in his distinguished career.
161 & 109* at Cape Town, Jan 2011
Kallis scored hundreds in the same Test which ended in a draw. The series ended 1-1. This was the second time he scored centuries in both innings. In the process, he mustered his 39th and 40th ton which put him ahead of Ricky Ponting and behind only Sachin Tendulkar.