The left-arm seamer impressed with 13 wickets in three Ranji Trophy matches and will return to South Africa for two Tests, where he claimed 10 wickets on tour in 2010/2011.
India call upon Zaheer Khan for South Africa Tests
Khan, an 88-Test veteran who needs five wickets to reach the 300 mark, had not been considered since the third Test against England in Kolkata a year ago due to form and fitness issues.
The 35 year old was not handed a central contract this season, but found favour with the selectors after he claimed 13 wickets in three Ranji Trophy first-class matches for Mumbai, including a five-wicket haul.
Khan will spearhead a five-man seam attack in South Africa where he claimed 10 wickets in two Tests on the previous tour in 2010/2011.
But the left-arm seamer was not selected for the three-match one-day series against the Proteas which starts on December 5 and precedes the Tests.
Gambhir, who was also sidelined after the home series against England, failed to impress the selectors despite making 153 on a green-top on Saturday to fashion Delhi's Ranji Trophy win over Haryana.
The Test series between top-ranked South Africa and number two India, which was originally scheduled for four matches, was curtailed to two to accommodate a farewell home series for Tendulkar.
Tendulkar, the world's leading run-getter in both Test and one-day cricket and the only batsman to score 100 international centuries, retired after playing his 200th Test earlier this month.
The tour opens with the first one-day international at the Wanderers in Johannesburg on December 5. The remaining two one-dayers will be held in Durban (Dec 8) and Centurion (Dec 11).
India will play a two-day warm-up match in Benoni on Dec 14-15 ahead of two back-to-back Tests in Johannesburg (Dec 18-22) and Durban (Dec 26-30).
Test squad: Mahendra Singh Dhoni (capt), Murali Vijay, Shikhar Dhawan, Cheteshwar Pujara, Virat Kolhi, Rohit Sharma, Ajinkya Rahane, Ravichandran Ashwin, Bhuvneshwar Kumar, Umesh Yadav, Mohammed Shami, Ravindra Jadeja, Zaheer Khan, Ambati Rayudu, Wriddhiman Saha, Ishant Sharma, Pragyan Ojha.
One-day squad: Mahendra Singh Dhoni (capt), Shikhar Dhawan, Suresh Raina, Virat Kohli, Rohit Sharma, Ajinkya Rahane, Yuvraj Singh, Ravichandran Ashwin, Bhuvneshwar Kumar, Mohammed Shami, Ambati Rayudu, Umesh Yadav, Ishant Sharma, Mohit Sharma, Ravindra Jadeja, Amit Mishra.