Pakistan hammered 351 for four after winning the toss, only 41 runs fewer than South Africa made in setting up a 164-run win in the opening clash at Centurion Sunday.
Mohammad Yousuf made a high-class 101 not out but the assault was set up by opening batsman Inran Nazir, who attacked South Africa's normally reliable new ball bowlers, Shaun Pollock and Makhaya Ntini.
Nazir, who was not selected Sunday, hit 57 off 39 balls.
Pakistan's senior batsmen, Younis Khan (93) and Yousuf batted solidly in a stand of 124 off 136 balls, while Shahid Afridi made a thrilling return to form by thrashing 77 not out off only 35 balls with six sixes and five fours.
Yousuf and Afridi put on an unbeaten 129 off 70 balls for the fifth wicket.
South Africa made a good start when Pollock won an lbw verdict against Kamran Akmal off the fourth ball of the innings.
But Nazir played some audacious pulls, cuts and drives, forcing South African captain Graeme Smith to change his usually predictable game plan. Pollock and Ntini were both taken off after only four overs.
Khan and Yousuf played more conventional cricket but kept the scoring rate at close to a run a ball.
In the absence of a specialist spin bowler Smith brought himself on to bowl off-breaks and was rewarded with the wicket of Khan, caught on the midwicket boundary after hitting nine fours and two sixes in a 98-ball innings.
But the arrival of Afridi signalled carnage for the bowlers.
Afridi played some extraordinary strokes including two sweep shots for four against Ntini, whipping fast deliveries aimed at his stumps to the fine leg boundary as though Ntini was a slow bowler.
Afridi also hit a huge pull shot off Andre Nel which landed on the roof of the old pavilion and bounced out of the ground.
Ntini went for 71 runs off nine overs, while Nel conceded 82 off ten.
South Africa made two changes from the team that won the first match in the five-game series.
Batsman Herschelle Gibbs returned in place of Loots Bosman after completing a suspension for using insulting language during the first Test against Pakistan last month.
Langeveldt came in for left-arm spinner Robin Peterson on a pitch reputed to have more pace and bounce than other grounds in South Africa.
Pakistan also made two changes for the day-night match. Nazir replaced fellow opening batsman Mohammad Hafeez while all-rounder Azhar Mahmood came in for fast bowler Mohammad Sami.
Mahmood, who was not included in Pakistan's 30-man provisional squad for the World Cup, was called up as a replacement for the injured Shabbir Ahmed and only arrived in South Africa Tuesday.
He was rushed straight into his first one-day international in two years.