Juan Flores, of Petaluma, was arrested around 4:45 p.m. in the 1600 block of Jeffrey Drive where he allegedly held the woman captive and injured her, police said.
The victim reportedly tried to call police but he took her phone.
Police received reports of the battery from neighbors.
Flores was booked in Sonoma County Jail with a $250,000 bail, police said.