The 33-year Razzaq last played for Pakistan in World Twenty-20 in Sri Lanka in October and landed into controversy by accusing Twenty20 captain Mohammad Hafeez for not using him properly.
Razzaq was fined for his outbursts but has returned to the squad without any performance in Pakistan's domestic circuit.
Pakistan plays South Africa in two Twenty20 in Dubai on November 13 and 15 which follows the five-match one-day series, currently tied at 1-1.
The third one-day match is in Abu Dhabi on Wednesday.
Also recalled in the squad is Malik who last played for Pakistan in the Champions Trophy in June in England this year.
But surprisingly there was no place for left-arm spinner Zulfiqar Babar who won the man of the series award in T20 against the West Indies in July this year.
Hafeez will captain the squad.
Squad: Mohammad Hafeez (captain), Nasir Jamshaid, Ahmed Shehzad, Umar Akmal, Umar Amin, Shahid Afridi, Sohaib Maqsood, Abdul Razzaq, Sohail Tanvir, Mohammad Irfan, Junaid Khan, Saeed Ajmal, Shoaib Malik, Abdur Rehman.