Bangladesh are in danger of following-on after South Africa, declaring at 529/4, reduced the visitors to 153/7, still 176 runs behind the follow-on target.
Gary Kirsten and Jacques Kallis started day two in a positive fashion. They scored runs freely in the first hour, before Kirsten, having just gone to his 150, slashed a catch to backward point ending a 81-run partnership.
Ashwell Prince, the next man in, lasted eight balls before being well caught at backward point by Alok Kapali. South Africa were still in command at 448/4 despite losing two quick wickets.
Kallis needing to score 29 runs to reach the double of 4,000 Test runs and 100 Test wickets achieved it with a classic cover drive that effortlessly went to the rope. This feat made him the fifth Test player, and second fastest behind Sir Garfield Sobers, to achieve the target. The other players who have accomplished this feat are Kapil Dev, Ian Botham and Carl Hooper. Kallis also became the third South African, behind Gary Kirsten and Daryll Cullinan, to pass the 4,000 runs mark.
Martin van Jaarsveld and Kallis found that the bowling had improved and that runs were hard to come by. With the scoring rate going down, Mark Boucher decided that it was time to declare, 40 minutes after lunch, and get his bowlers out in the middle.
The innings was closed on 529/4 with Kallis on 75 and Van Jaarsveld on 39.
The first target for Bangladesh had to be the 329 to avoid the follow-on, but a disastrous start put them under a lot of pressure.
Javed Omar was trapped leg before for seven. Al Sahariar, his partner, after clipping some neat fours off his legs, followed soon after for 18, when he could not avoid a short ball that deflected into the wickets off his arm, as Bangladesh were suddenly two down for 25.
A good partnership of 66 runs followed between Habibul Bashar and Sanwar Hossain before Hossain gloved a catch to Boucher off Makhaya Ntini when on 31.
Ntini at this stage took the heart out of the Bangladesh batting line-up. Bowling with pace and aggression, his second wicket came when Tushar Imran failed to control a lifter, only to be bowled off the body without scoring. Ntini followed it by enticing Bashar into an edged drive when the latter was on 38. The Bangladeshi mini-collapse left them at 100/5.
Khaled Mashud was unlucky to be given out, caught off the shoulder for four before Alok Kapali, who was having some fun, was brilliantly caught by Kallis for 35 when he got a leading edge from a sweep.
With Mohammad Rafique and Tapash Baisya, the last of the noted batsmen, not out at the close, Bangladesh are in grave danger of finding themselves batting for a second time on day three.