The Proteas won the toss and chose to bat but lost two wickets in the first over and at one stage was slumped to 42-5 off 12.5 overs.
But Mark Boucher (69) and Justin Kemp (64) not only staved of further collapse but revived the Proteas innings with 131 partnership.
Pakistan pacemen Umar Gul and Rao Iftikhar Anjum took 3-36 and 2-26 respectively.
South African skipper Graeme Smith led the procession back to the pavilion, out lbw to Gul with the second ball of the match.
Herschelle Gibbs followed two balls later, caught by Shoaib Malik at first slip on a green top.
Boeta Dippenaar and Jacques Kallis survived some narrow escapes before Dippenaar fell for 13, caught one-handed by diving wicket-keeper Kamran Akmal off Anjum in the 10th over.
Kallis dug deep to make 17 before edging behind to Akmal off Anjum, while AB de Villiers (10) became Akmal's third victim off Yasir Arafat.
De Villier's dismissal left Proteas reeling on 42/5 wicket-keeper before Boucher and Kemp knuckled down to revive the Proteas innings.
Boucher, trying to up the run rate fell in the 44th over, caught by Mohammad Hafeez off the bowling of Abdul Razzaq after facing 98 balls.
Former skipper Shaun Pollock added just two before he was caught by Iftikhar off Hafeez, while Kemp, who hit two big sixes late on, was pouched by Malik off Gul in the final over.
Andre Nel (12) and Makhaya Ntini (3) saw out the Proteas full 50 overs.
The winners of this tie will go through to the semi-finals along with New Zealand from Group B.