Thai police have charged Jai Kenwankham, 39, with killing and dismembering Mali Thaiyai, 27.
Jai was arrested at Jinda apartments at Soi Ramkhamhaeng 53 in Bang Kapi, Bangkok.
Pol Lt-General Sanit Mahatawon said Jai confessed to the crime allegedly saying he "impulsively" killed the woman after they argued and cut up the body and put the parts into fertiliser bags.
Jai allegedly disposed of the bags early on Saturday.
Police said Jai used to work in a slaughterhouse as a butcher in Laos before moving to Thailand and working at a restaurant.
After a raid on Jai's apartment, police said they found Mali's mobile phone and a knife, and there were bloodstains in the toilet.
Police will conduct DNA tests.
Klong Tan police said they found a fertiliser bag containing a body part tied to a pier close to Phakamat village in Soi Pridi Banomyong 14.
On Saturday afternoon, four body parts were discovered at three separate areas in Klong Saen Saeb in Soi Ramkhamhaeng 53, which is about 40 metres from Jai's room.
A head and a right leg were discovered at the Rama IX water-pump station in Huai Khwang district, while a left leg was found at the Wat Tuek Ramkhamhaeng community pier in Soi Ramkhamhaeng 39, Wang Thonglang district.
Mali's boyfriend, Vittaya Pulyiem, 30, identified her from a butterfly tattoo on her shin and a green flower on her thigh. Vittaya said Mali worked at a karaoke business in Lamsali and disappeared on Thursday.