Police arrested the 46-year-old man at his home at 1.50am on Sunday, Warrant Officer Solomon Sibiya said in a statement.
The child had been playing in her aunt's yard on Saturday afternoon when the man asked her to buy him beer from a spaza shop.
"The suspect got closer to the little girl trying to convince her, but when she continued to refuse, the suspect grabbed and dragged her by the hand to the back of the shack."
The man then told her to lie down and promised her a R5 coin.
He undressed her and raped her before giving her the money.