Wicket-keeper Mark Boucher was one of three players dropped, on Friday, when South Africa named their squad for next month's One-day Internationals against Sri Lanka.
Boucher, 35, who holds the World record for most Test dismissals (540), batsman David Miller and leg-spinner Imran Tahir have paid the price for the limited-overs series defeat at home to Australia in October.
Kleinveldt, 28, is in line for his ODI debut after two Twenty20 internationals while Elgar, 24, impressed in South Africa's domestic limited-overs competition.
The team will be led by wicketkeeper-batsman AB de Villiers for the first time since he was appointed as ODI captain.
"Elgar fully deserves his opportunity," CSA selection convener Andrew Hudson said.
"He was the leading run-scorer in the (domestic) One-day cup and also had the best average. In addition he gives us very useful bowling options as a left-arm spinner.
"Kleinveldt played an important role with the ball in helping the Cobras to win the One-day cup and he also has a lot of potential as a lower-order power hitter."
The first game of the series takes place in Paarl on January 11 with the final match scheduled for January 22 in Johannesburg.
South Africa squad: Hashim Amla, Johan Botha, AB de Villiers (captain), JP Duminy, Francois du Plessis, Dean Elgar, Jacques Kallis, Rory Kleinveldt, Morne Morkel, Wayne Parnell, Robin Peterson, Graeme Smith, Dale Steyn, Lonwabo Tsotsobe.
Misbah still fears losing captaincy: Coach Mohsin
Lanka take firm control of Test; Sangakkara hits ton
Wahab was picked only after clearance from ICC: Ashraf
De Lange bags 7 wkts on SA debut, but Lanka on top
SCG is my favourite ground outside India: Tendulkar