Detectives said Tommy Lee Thompson, 55, flagged down officers around 3:30 a.m.
"We had a gentleman who... black male... came out of the woods and told the officers that he had killed someone," said Dan Grubb, Fayetteville police spokesperson. "So we of course we detained the suspect and drove to the location where he told us to go and there indeed was a deceased black female."
Thompson is now charged with first-degree murder and first-degree rape.
Grubb said Thompson wasn't revealing much information to police.
"He hasn't given us any details," Grubb said. "He's on site right now being questioned by investigators," he said.
The victim was identified as Katrina Elaine Colbert, 40, who was also homeless.
Thompson has a conviction for second-degree rape in Cleveland County in 1991.