The suspect Jaime Martinez told police he killed his wife, their children aged five and seven as well as committing "16 or 17 other murders," senior state prosecutor Luis Gonzalez told reporters.
He was arrested in connection with the killing of a woman found dead in a house in a rural area near the western city of Medellin.
Police investigating that killing traced him to his home and found "blood stains on the walls" as well as clothes belonging to the victim, Gonzalez said.
Officials started investigating and have found evidence of a series of other killings. The suspect appeared to have collected victims' clothes and other belongings.