Kallis' half-century followed his 2-53 as the 38-year-old South African was recalled for his first ODI game since February 2012. The rest of South Africa's top order failed and Duminy was left with too much to do.
Batting first, Pakistan was rocked early in its innings by Steyn's 3-33. Morkel finished strongly with 3-39 and Vernon Philander claimed 1-37 as South Africa gave its front-line seam attack a run out in its first ODI of its home season and they responded with seven wickets between them.
Steyn had the first two breakthroughs when Nasir Jamshed (24) and Mohammad Hafeez (5) both edged to the slips.