Tuks had the first opening of the game as Ian Chikohwa glided past Sifiso Hlanti down the right, but his cross just evaded Atusaye Nyondo.
A minute later Phakamani Mahlambi got to the byline at the other end of the field, but his cross couldn’t find a Wits teammate.
Mahlambi headed wide from Elias Pelembe’s cross in the ninth minute, but Tuks were also a threat on the break and in the 18th minute, a snapshot from Bongani Nyathi was well saved by Moeneeb Josephs.
In the 31st minute, a lovely backheel fron Mahlambi sent James Keene way, but his shot missed the target.
In the 34th minute a mistake from Hlatshwayo gifted possession to Thabo Mnyamane on the edge of the Wits area. Mnyamane should have passed to Nyondo, who was in the clear, but dallied and the move broke down.
Tuks paid the price as Wits went in front in the 36th minute. A long throw evaded everyone and arrived at Daine Klate at the back post. Confronted by Coetsee, he crossed the ball in and Hlatshwayo found the net off the underside of the bar.
Wits were handed a great chance to double their lead in the 40th minute as Willem Mwedihanga needlessly fouled Keene inside the area and referee Thando Ndzandzeka pointed to the spot. But Klate’s penalty was well saved by Coetsee.
Just two minutes after the break, Hlatshwayo had another chance put Wits further in front, but this time he headed Klate’s free kick over the bar.
And Wits paid for their profligacy in the 63rd minute, as Chikohwa made another good run down the right and his cross was flicked into the path of Mnyamane, who provided a fine finish.
Gavin Hunt made a double change almost immediately, bringing on Jabulani Shongwen for Phumlani Ntshangase and Sibusiso Vilakazi for James Keene.
In the 67th minute, Elias Pelembe skipped into the area but his shot was brilliantly turned behind by Coetsee.
But Hlatshwayo grabbed his second of the game in the 88th minute, heading in Pelembe’s cross to send the home fans delirious.