The victim, aged 62, had been stabbed in his chest and neck and had a bite mark on his face, the police told the BBC.
The suspect, a Zimbabwean national, was found in the Gugulethu township near Cape Town.
He is due to be formally charged in court later on Thursday or Friday.
Western Cape Deputy Police Commissioner Sharon Jephta said police officers and witnesses had been offered counselling to cope with the trauma.
"It was very gruesome," she said.
"It's definitely a love triangle," she said.
South African police have arrested a man they found using a knife and fork to eat the heart of his ex-girlfriend's new lover.