A mother and her two children were shopping in Somerset West on Monday morning when a man approached them and stabbed one of the children, Western Cape police have said.
The family had been walking in Waterstone Village shopping centre when it happened at around 09:15, said Captain Hein Hendricks.
"Both children (a boy and a baby) were inside a shopping trolley with the five-year-old boy sitting in the front," he said.
Police initially said the man walked towards the trolley, took out a knife and stabbed the boy in the chest. The mall disputed the statement to reflect the boy sustained a flesh wound in the scuffle after a security guard's intervention.
Hendricks said the mother, together with security guards, apprehended the man.
'We urge parents to be vigilant'
He was arrested on a charge of assault with intent to cause grievous bodily harm.
The boy was understood to be in a stable condition.
Centre manager Daphne Kriel said that they were thankful for their Halt security guard who recognised the man from when he was in the vicinity on Friday, and grabbed him in this morning's incident.
While speculation on social media has been rife about the man's motive, with some alleging it was an attempted child abduction, Hendricks said the circumstances were still being investigated.
Kriel said: "We are so thankful that both the children are not harmed, but we urge our parents to be also vigilant in today's day and age".
The man is expected to appear in the Somerset West Magistrate's Court once he has been charged.
In an email on Tuesday, Kriel said the boy was not seriously harmed.
Their security guard had anticipated the man's intentions and the boy sustained a flesh wound. The man was then apprehended.
The mall is also rewarding the security guard for his intervention and quick-thinking, while community members are also in the process of donating a hamper to him.
*NOTE: This story has been updated to reflect the amended statement, and to include additional comments from the mall's centre manager.