Senokwane has replaced Matthew Breetzke and will open the batting alongside Tony de Zorzi while spinner Subrayen comes in for Keshav Maharaj, who picked up a groin strain in the first Test.
The third change in the starting line-up sees Senuran Muthusamy come in for fast bowler Kwena Maphaka as the Proteas opted to select two specialist spinners.
The Test will also see Wiaan Mulder captain the national side for the first time, the all-rounder taking over the leadership reins from Maharaj.
Senokwane has been rewarded after amassing 559 runs, including two centuries, in South Africa's domestic 4-Day competition playing for the Knights last season.
The 28-year-old has scored seven hundreds and eight fifties in 50 First-Class matches and was recently selected for the SA A team that toured West Indies.
The 31-year-old Subrayen has taken 242 wickets in 77 First-Class matches and he was in good form on the recent South Africa A tour to the West Indies having delivered a five-wicket haul in a victory in St Lucia.
The Proteas will be looking for a series clean sweep having convincingly beaten the hosts by 328 runs in the first Test at the same venue.
Proteas team for second Test against Zimbabwe: 1 Lesego Senokwane, 2 Tony de Zorzi, 3 Wiaan Mulder (captain), 4 David Bedingham, 5 Lhuan-dre Pretorius, 6 Dewald Brevis, 7 Kyle Verreynne (wk), 8 Corbin Bosch, 9 Senuran Muthusamy, 10 Prenelan Subrayen, 11 Codi Yusuf