Inspector Moses Maphakela said the man was arrested around 2.30pm in Marlboro near Alexandra.
A teacher at the child's creche noticed that something was wrong with the girl. The teacher noticed that blood was present after the child went to the toilet, he said.
She then took the child to the hospital where a doctor explained that the girl had been raped several times.
On Friday a case of rape was opened. The man was arrested on Sunday.
The 31-year-old man would appear before the Wynberg magistrate's court soon, said Maphakela.