Colin Ingram hit a century as South Africa set Pakistan a victory target of 314 runs in the first one-day international at Chevrolet Park.
The hosts made a steady start in Bloemfontein as captain Graeme Smith and Hashim Amla reached a partnership of 50 runs off 60 balls.
However, Smith (30) soon went as he reversed his paddle shot at the last minute and did not make connection with the ball that ballooned up off his glove for Kamran Akmal to catch.
Amla could not reach his half-century either as he was gone for 47 by top-edging Mohammad Hafeez's delivery to deep square leg.
AB de Villiers and Ingram moved South Africa along as both men moved past 50 before De Villiers (65) fell in the 37th over, firing a Saeed Ajmal delivery straight to Younis Khan.
Ingram continued to edge closer to a century as Faf du Plessis notched 26 runs before falling to Junaid Khan.
Farhaan Behardien was next in and he smashed a quickfire 34 off 14 balls before Ingram moved past 100 in the final over of the innings.