South Africa 380 for 6 (Prince 101*, Kallis 58) lead Zimbabwe 265 by 111 runs
Scorecard and ball-by-ball details

Graeme Smith looks on in horror as he gives his wicket away© Cricinfo
Ashwell Prince struck his maiden century in his ninth Test as South Africa finally took control on the second day at Centurion. He showed the application that had been missing from his colleagues after Zimbabwe had kept them in check for the first two sessions. His partnership of 118 with Jacques Kallis finally overcame the spirited efforts of the Zimbabweans who produced their best performance on tour.

Prince, who made his debut against Australia in 2001-02, was particularly strong through the off side, but had a huge slice of luck when he was dropped on 53, the second catch put down during the day. His partnership with Kallis finally took the steam out of Zimbabwe, who had chipped away manfully. Kallis did not appear until No 7, resting his injured hip, but was quickly into his stride. He notched up yet another half-century but after batting cautiously to ensure he would be around for the new ball, dragged Heath Streak into his stumps (338 for 6). The batsmen looked in no real hurry, but they may be down to three fit bowlers in the second innings and wanted to make their lead as large as possible.

Zimbabwe's attack started to wilt towards the end of play, and Nicky Boje took advantage of some loose offerings to boost the lead. Zimbabwe were not helped when Tatenda Taibu had to leave the field with a shoulder problem, thrusting the wicketkeeping duties to Barney Rogers.

Until the final session there had been a feeling that South Africa's batting was fairly slap-happy - a hangover from the complacency shown on the first day. Each time a batsman, or partnership, had looked like breaking loose Zimbabwe struck back. Much credit has to go to Graeme Cremer, who suffered a fierce pasting at Cape Town, but bowled 26 overs off the reel here, picking up two vital wickets. Jacques Rudolph, dropped before lunch, never looked on song before dragging Cremer onto his stumps via a bottom-edge and boot (133 for 3).

Herschelle Gibbs was very comfortable at the crease - maybe too comfortable - and the return of Streak for a second spell caught him off guard. Streak began to find the rhythm that has eluded him so far this series, and had a huge appeal for caught behind turned down. Four balls later he forced Gibbs into playing a strangely loose pull shot, the ball looped in the air and Taibu ran around to short fine-leg to take the catch (194 for 4).

Mark Boucher's wicket was well deserved as it came through some good captaincy from Taibu. He had just moved Hamilton Masakadza into short extra-cover and Boucher obligingly drove a catch straight to him (219 for 5). Credit, too, must go to Cremer, who was good enough to induce the shot.

Heath Streak lets fly© Cricinfo
The first hour suggested there would be a similar mauling on the cards to Newlands. Graeme Smith and AB de Villiers tucked into the new ball against Christopher Mpofu and Streak, as the opening bowlers failed to find a consistent line and length. However, just as Taibu was starting (or continuing) to look lost Elton Chigumbura removed Smith. He went for a pull but could only top-edge to deep midwicket, where Rogers called loud enough to prevent a collision as three fielders converged (93 for 1). The expression from Smith, the bowler and the crowd suggested it was a surprise all round. de Villiers then seemed to lose concentration as well, playing an expansive drive at Mpofu and edging a catch to Masakadza at first slip, who held on well (106 for 2).

South Africa have had a somewhat dismissive attitude towards this match, but today's Zimbabwe performance has made them sit up and take notice. They should go on and win quite comfortably, but the ruthless side that was on view at Cape Town seems to have retreated once again.

How they were out

South Africa

Smith c Rogers b Chigumbura 41 (93 for 1)
Top-edged pull to deep mid-wicket

de Villiers c Masakadza b Mpofu 47 (106 for 2)
Expansive drive, edged to first slip

Rudolph b Cremer (133 for 3)
Inside-edge onto foot, rolled back into stumps

Gibbs c Taibu b Streak 47 (197 for 4)
Top-edged pull, looped in the air, keeper ran round to catch

Boucher c Masakadza b Cremer 18 (219 for 5)
Drove to short extra-cover

Kallis b Streak 58 (338 for 6)
Inside-edge onto off-stump