The body of 36-year-old Louise O'Brien was discovered at a home in Dunkeld Road on Thursday evening.
A 41-year-old man has been arrested and is expected to appear at Perth Sheriff Court on Tuesday.
A police statement said: "Police Scotland can confirm that a 41-year-old man has been arrested and charged in connection with the investigation into the death of Louise O'Brien."
Police investigating the death of a woman in Perth have made an arrest.