Mario McNeill is being charged with first-degree murder and first-degree rape of a child, Fayetteville Police Chief Tom Bergamine told reporters at a news conference.
The 29-year-old McNeill was charged earlier this week with kidnapping, with authorities saying he took Shaniya Davis from her Fayetteville home. Her body was found Monday in thick underbrush off a rural North Carolina road after searchers spent nearly a week looking for her.
Bergamine gave few further details of the investigation Thursday. Earlier in the week, authorities said McNeill admitted taking the girl, but the chief did not say whether McNeill admitted to the child's death.
A search warrant says McNeill picked the girl up in front of the home and drove her to a hotel where she was last seen alive. Surveillance video captured McNeil carrying the girl in the building.
"It is our sincere hope that the Davis family may now begin to put this horrific event behind them and begin the healing process," Bergamine said at the news conference.
More coverage of the Shaniya Davis case from Crimsider:
Shaniya Davis: "Angel" Found Dead
Vigils for Shaniya Davis
Aunt Says Antoinette Davis Was "Neglectful"
Antoinette Davis Pregnant Again
McNeill's lawyer, Allen Rogers, did not immediately respond to a message left at his office after hours.
The girl's mother, Antoinette Davis, is charged with trafficking her daughter and child abuse involving prostitution. Bergamine said no new charges have been filed against Davis as of Thursday night.
Police issued the warrant containing the new charges against McNeill after they collected hair and fibers, clothes, and a straw from his 1997 Mitsubishi Galant.
Authorities first arrested another man, but charges against him were dropped a day later when investigators tracked down McNeill after receiving a tip from a hotel employee.