Aiden Markram continued a dream start to his South Africa career with a hundred and AB de Villiers marked his Test comeback with a half-century before Morne Morkel left Zimbabwe reeling on day one in Port Elizabeth.
The Boxing Day Test is being trialled as an inaugural four-day contest and the contest may not even go the shortened distance after 13 wickets tumbled in the day-night match at St George's Park.
Opener Markram (125) scored a second century in three Tests - after making 97 on debut - and De Villiers, captaining the side after Faf du Plessis was ruled out due to illness, made 53 in his first appearance in the longest format for almost two years as the Proteas posted 309-9 declared.
De Villiers then donned the wicketkeeping gloves with Quinton de Kock off the field due a hamstring strain and the stand-in captain held a catch for Morkel, who took 3-20 under the lights to leave the tourists in deep trouble on 30-4 at stumps.
#Day1 - STUMPS: @OfficialCSA 309-9 declared in 78.3 ov (Markram 125, De Villiers 53, Bavuma 44; Jarvis 3/57, Mpofu 3/58, Cremer 2/66)@ZimCricketv 30-4 in 16 ov (Burl 15*, Jarvis 4*; Morkel 3/20, Philander 1/5) trail by 279 runs with 6 wickets remaining in 1st innings #SAvZIMpic.twitter.com/AvC5EmeoAe
-- Zimbabwe Cricket (@ZimCricketv) December 26, 2017
The runs came a little too easily for Dean Elgar and Markram after De Villiers won the toss in his first Test since January 2016, putting on 72 for the first wicket.
Kyle Jarvis got a much-needed breakthrough, drawing a false shot from Elgar who, on 31, chipped a fuller delivery to Peter Moor, who also held on when Hashim Amla (5) slapped a loose delivery from Chris Mpofu to cover.
De Villiers was clearly eager to make up for lost time when he strode to the crease, timing the ball beautifully to hit Mpofu for back-to-back boundaries and the composed Markram stood firm at the other end as the Proteas took tea on 96-2.
Markram brought up his half-century with a single off Jarvis and De Villiers lofted the same bowler for six over square leg before going on to reach 50 with ominous ease, but the crowd were left disappointed when the destructive right-hander was caught and bowled by Mpofu (3-58).
The assured Markram looked untroubled and found the extra-cover boundary when Graeme Cremer tossed one up outside off stump to bring up his hundred.
Markram was gone on the stroke of dinner, though, keeper Brendan Taylor taking a fine one-handed to end a superb knock after Jarvis (3-57) found the edge and the seamer struck again to send Temba Bavuma on his way for 44.
South Africa had lost six wickets for 58 runs when De Villiers declared, but they were in complete in control at the close thanks largely to a fired up Morkel.
Morkel snared Hamilton Masakadza leg before with the first ball of the innings and Zimbabwe were unable to handle the big pacemen, who saw the back of Chamu Chibhabha and Taylor before Vernon Philander trapped Craig Ervine in front to leave Zimbabwe in the mire. Ryan Burl (15 not out) and Jarvis (4 not out) will resume with Zimbabwe facing a huge battle to avoid the follow-on in the one-off Test.