The 26-year-old’s innings also helped to dig the Cobras out of trouble, as they recovered from 73 for four to close the day on 282 for five, having been asked to bat first by the Warriors.
The decision by Warriors captain Ashwell Prince, who is playing his final game for his franchise, was a straightforward one given the large amount of rain that had fallen in Cape Town over the previous four days.
Andrew Birch and Rusty Theron duly took advantage of the early movement as Birch had Omphile Ramela caught and Theron dismissed both Andrew Puttick and Justin Ontong.
When Yaseen Vallie was caught behind off the bowling of Basheeru-Deen Walters, the Cobras had lost four wickets in the opening session and were in danger of being bowled out cheaply - something they could ill-afford given how tight their title race with the Chevrolet Knights has become.
However, Van Zyl stood up under pressure once again, and found a willing ally in Dane Vilas.
As the pitch began to even out under increasingly sunny skies, the pair put on 163 for the fifth wicket before Vilas was finally dismissed by David White for 86.
Justin Kemp accompanied Van Zyl through the final hour of the day, and was unbeaten on 30 when stumps were called.