At least 17 soldiers died in an ambush staged by FARC rebels in Colombia's Arauca province, which borders Venezuela, while four other soldiers were killed in fighting with the guerrilla group in the southern province of Caqueta, media reports said.
The soldiers were killed on Saturday, when Colombia marked the 203rd anniversary of its independence from Spain.
The ambush was staged by Revolutionary Armed Forces of Colombia, or FARC, guerrillas in El Mordisco, a rural area along the highway that links the cities of Fortul and Tame.
The firefight in Caqueta left three soldiers wounded, the army's 12th Brigade said in a statement.
Six guerrillas were killed and two others were captured by soldiers, the army said.
President Juan Manuel Santos, meanwhile, took part in a series of Independence Day events on Saturday.
The president called on citizens and Colombia's political parties to back the peace talks his administration has been holding with the FARC for the past eight months.
The FARC, Colombia's oldest and largest leftist guerrilla group, is on both the U.S. and EU lists of terrorist groups.
Drug trafficking, extortion and kidnapping-for-ransom are the FARC's main means of financing its operations. EFE