Du Plessis struck 103, his ninth Test century, as South Africa reached 382 for six at the close, a lead of 205 runs.
With 1130 runs in first 25 innings, Aiden Markram has had a great to start to his Test career ??— Cricingif (@_cricingif) January 4, 2019
Only four South Africa batsmen had more runs than him at this stage ????
Live scorecard and ball-by-ball details ?? https://t.co/c87UtPtjLF #SAvPAK pic.twitter.com/kNa0isITNS
The South African captain shared a fifth wicket partnership of 156 with Temba Bavuma (75), which wore down the Pakistan bowlers and fielders. Quinton de Kock benefited from the bowlers, sapped of energy, hitting a breezy 55 not out.
Du Plessis, out for a pair during South Africa's six-wicket win in the first Test in Centurion, ground out in an innings lasting six minutes short of six hours, facing 226 balls.
He was given a life on 96 when Sarfraz Ahmed failed to collect a faint tickle down the leg side off Mohammad Abbas.
Abbas bowled a probing line and length but had a largely luckless day. It started well enough when he bowled Hashim Amla with his fifth delivery of the morning with a ball which deviated sharply off a crack outside the off stump and sent the leg stump flying.
Abbas appeared to have had Bavuma caught by Azhar Ali at first slip when the batsman was on three. The on-field umpires gave a "soft" signal of out but asked for television umpire S. Ravi to check whether there had been a clean catch. Ravi decided the ball had made contact with the ground while the catch was being taken.
Shortly afterwards, Abbas unsuccessfully sought a review when he thought Bavuma was leg before wicket. He later won an lbw decision against Bavuma only for the batsman to be reprieved on review, with replays showing the ball just going over the top of the bails.
Bavuma made his 13th half-century before being caught behind off Shaheen Afridi, bowling around the wicket. He faced 162 balls and hit ten fours.
Afridi was the most expensive of the Pakistan bowlers, conceding 112 runs, but he picked up three of the four wickets that fell during the day's play, including that of Du Plessis on review after umpire Joel Wilson failed to detect a faint edge.