Lieutenant Colonel André Traut said riot police had been deployed to contain the situation in the Boland farming town of De Doorns.
"We are taking action, and arrests are being effected," Traut said, adding that "in the region of 50" people had been detained since the protests began early on Wednesday.
Protesters stoned cars, prompting the police to close roads. The N1 was closed outside De Doorns, forcing motorists to use alternative routes.
Farmworkers said they would not return to the vineyards on Wednesday afternoon as the situation had become too volatile.
De Doorns was also at flashpoint two months ago when Boland farmworkers went on strike over low pay and poor working conditions.
This week hopes were dashed that talks organised by the department of labour would yield an agreement and avert another round of protests. – Sapa