Warrant Officer Xoli Mbele said the woman, 30, met the man she knew on Saturday at 2am, after she returned from a tavern.
"He forcefully took her to his flat where he raped her. He fell asleep and the victim ran to a police station," he said.
He said the police found him still asleep and he was arrested.
He was expected to appear in the Johannesburg Magistrate's Court on Monday.