Taijul finished with 6-135, his best figures in an away Test innings, while Khaled Ahmed took 3-100. Ebadot Hossain bowled 28 overs but has nothing to show in the wickets column.

Bangladesh’s hopes of bowling out South Africa quickly on Day 2 got crushed in the morning session, as the hosts accumulated 106 runs off 25 overs for the loss of two wickets after resuming the day’s play on 278-5.

Khaled broke through the defenses of overnight batter Kyle Verreynne (22) early in the day. But Wiaan Mulder and Maharaj then formed an 80-run partnership for the seventh wicket to take South Africa’s total near the 400-run mark.

Maharaj was the aggressor of the two, as he smashed four boundaries and three sixes to complete his fourth Test fifty in just 50 deliveries.

Taijul Islam finally ended the partnership by bowling out Mulder for 33 and South Africa went into the Lunch break on 384-7.

After the interval, Maharaj continued batting aggressively and pushed the total beyond 400.

Maharaj was dropped once by Yasir Ali at slip off Ebadot as Yasir couldn’t grab onto a difficult chance. After getting a life on 58, the tail-ender rubbed salt on Ebadot’s wound by hitting him for four boundaries in his next three overs.

Finally, Taijul ended Maharaj’s innings with a looped up delivery that spun sharply and hit the top of off-stump.

Maharaj walked back to the dressing room to a standing ovation after an innings that included nine boundaries and three sixes.

Simon Harmer also didn't miss the chance to further frustrate Bangladesh as he made 29 off 59 balls and his innings took the total beyond 450.

Harmer got stumped by Taijul in the 136th over and Miraz trapped Lizaad Williams (13) leg-before wicket in the following over to bowl out South Africa.