Alvin B. Keyser, 23, has so far been charged with first-degree murder and concealing a dead body.
St. John's body was found at about 9 a.m., roughly one mile from her home on Mill Wharf Road in Middlesex. Her body had been covered with leaves and left along Barricks Mill Road in Pine Top, Virginia.
Keyser knew the 23-year-old mother of two and the father of her children, according to authorities. The extent of their relationship is not yet known.
Keyser, investigators said, led detectives to St. John's body Thursday morning.
“Keyser stated to detectives he confronted St. John at her residence about statements that were made about Keyser," Middlesex Sheriff's Major Michael Sampson in a statement. "Keyser stated that St. John struck him, and he struck her back."
At some point St. John got into a van that Keyser was driving, but officials didn't clarify whether or not she was physically forced into the vehicle.
Investigators said Keyser admitted that he later pushed St. John out of the van, continued to hit her, and strangled her until she stopped breathing.
“Keyser then stated he loaded her in the van and put her body in the woods down from her residence,” said Sampson.
The 23-year-old also admitted that certain items at the original crime scene were his, according to investigators.
Keyser is being held without bond at the Middle Peninsula Regional Security Center.
He will make his first court appearance on Monday, March 5.
The Middlesex Sheriff's office said they investigated Keyser after someone posted on social media about a statement Keyser had made.
"The closure on this is not good closure, but it is closure," said Sampson, who thanked multiple law enforcement agencies, social media tips, and the media for their help with information.
At a press conference, the sheriff's office said more charges are expected and more people will be interviewed.
The Search for TerriLynn
St. John's family reported her missing after she did not show up for work Tuesday morning.
When relatives went to her home to check on her, they discovered her children — ages 3 and 1 — unharmed, but home alone.
Family members said they believed St. John struggled with someone in her front yard, near her car, around 7:30 a.m. Tuesday.
“They looked through the woods and you could definitely tell there has been a struggle beside my daughter’s car,” her father, Terry St. John, said. “Jewelry was all around, like it had been broken off, her cell phone was found in the bushes.”
Investigators have interviewed at least four persons of interest about St. John's disappearance. St. John was living with her boyfriend, who is not the father of her children, at the time of her disappearance. Earlier, police said the boyfriend was among the persons of interest being interviewed.
Police said the father of St. John's children lives in the area, but wasn't around when St. John disappeared.
Those persons of interest have been cooperative and submitted DNA samples to investigators, Sampson said.
That evidence was sent to the crime lab in Richmond where it is being tested.
Police are still gathering information and are asking anyone with information about the case to call the Middlesex Sheriff’s Office at 804-758-5600.