Eliezer Marquez Navedo, 36, apparently acted alone in the tourist's killing, said Antonio Lopez, police investigations chief in the eastern city of Fajardo.
Prosecutor Francisco Sanchez said the charges against Marquez would include kidnapping, rape and first-degree murder.
Sara Kuszak made a desperate call for help from the trunk of her kidnapper's car Wednesday, about an hour before she was found dead with her throat slashed.
Police say Marquez told them that he abducted Kuszak after seeing her jogging alone.
"He opened the trunk, he waited for her to pass by and he forced her into the trunk," Lopez said.
Investigating officer Arsenio Rodriguez said the FBI used a signal from the victim's cell phone to help locate the suspect, whose shirt and pants was covered with blood. Kuszak's fiance had called the FBI, which turned the case over to local police.
The suspect's mother, Ines Navedo, was convicted for killing of a brother and sister, ages 2 and 3, in 1992 and served more than 12 years in prison before she was released.
A jury convicted her of second-degree murder because she was under the influence of drugs and alcohol, said Pablo Roman, a retired police officer who investigated the case.
Kuszak, 35, who moved to Savannah, Georgia, from San Francisco about five years ago, arrived Tuesday night in Puerto Rico, where she met up with her fiance and several friends.
"She was looking forward to the rest of her life with her fiance and her unborn baby," her friend Matt Daniel said in a phone interview from Georgia. "I'm just devastated. I don't know who would do something like that."
Kuszak, who worked on sailboats and part-time in real estate and catering, was five months pregnant, friends said.
She and her fiance, Cheshire McIntosh, met several years ago on a South Pacific island where she was vacationing and he was sailing a yacht, said another friend in Georgia, John Everette.
Kuszak apparently was going to visit some friends whose yacht was docked in Fajardo, marina spokeswoman Frances Rios said. Kuszak's cell phone call for help was placed to a marina employee who then called 911.
Police would not release a transcript of the marina employee's 911 call because the case is under investigation.