Puttick’s unbeaten 123 and Van Zyl’s 99 took the Cobras towards a handy lead after the Dolphins had been shot out at the start of the day, but Kyle Abbott and Daryn Smit grabbed four quick wickets to leave the game evenly balanced.
The Cobras went to stumps on 260 for six, leading by 232 but without much batting to come.
Although they are yet to make the game safe, the Cobras had to be pleased with their fightback given that the Dolphins began the day with a four-run lead with five first-innings wickets still in hand.
Justin Kemp (3 for 60) trapped David Miller lbw with the very first ball of the day, and then dismissed Abbott and Mthokozisi Shezi to put the Cobras right back in the game.
With Dane Paterson picking up two wickets to record figures of 3 for 61, the Dolphins had lost their last five wickets for 24 runs and their lead had been restricted to 28.
After Abbott had bowled Omphile Ramela cheaply, Puttick and Van Zyl set about adding quick runs for the Cobras with the former going to fifty in just 70 balls and Van Zyl reaching the same landmark in 80.
However, when Van Zyl was bowled by Smit one short of three figures, the innings unravelled as the Cobras fell from 193 for one to 221 for five, and then lost Kemp five overs before the second new ball.
The Dolphins elected to leave the new ball for Sunday morning, setting up an exciting last day on which a result would give either side a major boost in the standings.