The 32-year-old opener failed in the two-match Test series in Zimbabwe last month, scoring just 59. But he fared considerably better in the one-day matches, scoring a hundred and winning man of the series.
That prompted selectors to include Hafeez in the one-day series against the Proteas which starts in Sharjah on October 30.
Pakistan is currently leading the two-Test series against South Africa after winning the first Test in Abu Dhabi by seven wickets.
Also returning to the one-day squad is left-handed opener Nasir Jamshed after being ignored for the Tests.
Former captain Shoaib Malik, Kamran Akmal and Abdul Razzaq are still being overlooked and haven't been included.
Haris Sohail and Anwar Ali were both axed from the one-day squad which won the one-day series 2-1 in Zimbabwe last month.
Umar Akmal, who was withdrawn from the Zimbabwe tour following a suspected seizure, is also back in the squad after doctors cleared him last month.
Pakistan will also play two Twenty20 Internationals against South africia for which the squad will be announced later.
Squad: Misbah-ul Haq, Ahmed Shahzad, Nasir Jamshed, Mohammad Hafeez, Umar Amin, Umar Akmal, Shahid Afridi, Saeed Ajmal, Abdur Rehman, Mohammad Irfan, Junaid Khan, Sohail Tanveer, Wahab Riaz, Sohaib Maqsood, Asad Shafiq, Sarfraz Ahmed.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ