Jacques Kallis starred with bat and ball as South Africa built up an impregnable position against Zimbabwe on the second day of the First Test at Harare Sports Club. He hit an unbeaten 157, his eighth Test century, out of a massive South African total of 600 for three declared, and then took a wicket in his first over as Zimbabwe lost four wickets for 143 by the close.

Kallis made most of the early running, hitting anything loose with power and time to spare, while Gary Kirsten dug a deep foundation as he set his sights on 300 or more. The Zimbabwe bowling was more accurate than on the first day, but on an easy-paced pitch never looked threatening. At least they were able to keep the score within reason, though, as South Africa added only 40 runs in the first hour and Kallis found runs harder to come by after his bright start.

There were few signs that South Africa were disturbed by this sudden policy of accuracy until, immediately after the drinks break, Kirsten slashed at a ball from Douglas Hondo that was well outside the off stump, and edged a catch to the keeper for 220. South Africa were 455 for two after two partnerships of 256 and 199.

Kallis was prepared to take no risks with his century in view, while McKenzie played himself in. Zimbabwe's fielding was also much keener, and Raymond Price made the ball spin sharply at times, so South Africa were restricted to 68 runs in the session.

In the first over after lunch, McKenzie leapt down the pitch to hit Price over his head for four, a declaration of South Africa's intentions. At last there was an intriguing battle on the field on even terms as Price troubled him at times, while the batsmen was determined to attack when the opportunity presented itself.

Kallis, grimly watchful through the nineties, finally reached his eighth Test century off 231 balls, and then began to open up. He joined McKenzie, who reached his own fifty, in launching an assault on Price, hitting him for several big leg-side sixes. Zimbabwe's luck remained minimal, with the odd mis-hit evading the fielders and a close lbw appeal against McKenzie rejected, but they continued to fight with much greater determination than they had shown on the opening day.

Finally Fortune decided to smile, and a top-edged pull by McKenzie (52) off Travis Friend was finally held by Douglas Hondo running in from long leg; 582 for three, and the third wicket had added 127. Kallis lost a ball from Price on to the roof of the new ZCU president's stand, while Lance Klusener had a few fresh-air swings before pulling Friend over the stands at wide long-on. At this point, with the score 600 for three, Shaun Pollock decided enough was enough and applied the declaration, tea being taken early. Kallis batted 257 minutes and hit 14 fours and five sixes.

When Zimbabwe batted, Andre Nel enjoyed the gift of a wicket with his third ball in Test cricket: Alistair Campbell (0) aimed an appalling hook at a bouncer moving well away outside off stump, and only succeeded in edging a catch to the 'keeper. Dion Ebrahim for his part showed no fear of Pollock, taking nine runs off his first two overs, and Hamilton Masakadza also took on the pacemen positively, the latter enjoying two escapes off Pollock, at gully and second slip. He was to waste them, however, by chancing a run to McKenzie, who anticipated well at mid-off to run him out for 13; 43 for two.

Kallis came on to bowl and immediately had Craig Wishart (0) caught low at first slip. Andy Flower was quickly under way, keeping it simple as always and punishing the loose ball, while Ebrahim brought up a creditable fifty with a cover-driven four off debutant left-arm spinner Claude Henderson. Flower, so proficient against spin, made it his aim to hit Henderson out of the attack on a pitch taking turn, but Ebrahim (71) donated his first wicket in Test cricket by charging down the pitch, head in the air, to be stumped.

Flower then played safely until the close, finishing on 54 not out, accompanied by night-watchman Price. Only Wishart of the four men gone was not guilty of a soft dismissal. Their last six wickets need to find 258 more runs to avoid the follow-on, difficult but by no means impossible.