An anti-violence march that began in a central Mexico state with a few hundred people and gathered thousands over a four-day trek has reached Mexico's capital.
About 20,000 people poured into the main Zocalo square in Mexico City, led by a poet whose son was killed by suspected drug traffickers.
They were wearing white T-shirts saying "enough bloodshed" and carrying photos of poet Javier Sicilia's son.
A few hundred people set off from Cuernavaca in the central state of Morelos on Thursday, marching silently along the 50-mile route. City officials said the march swelled to at least 20,000 after the bulk of protesters joined in Mexico City, although some media reported tens of thousands more.
Violence has surged in the region south west of Mexico City since drug kingpin Arturo Beltran Leyva died in a December 2009 shootout with marines in Cuernavaca, leading to the breaking up of his cartel.
Rivals have routinely hung mutilated bodies from bridges along highways connecting Mexico City, Cuernavaca and the Pacific resort city of Acapulco.
Similar turf fighting has claimed more than 34,600 lives nationwide since President Felipe Calderon deployed thousands of troops and federal police in late 2006 to intensify the battle against brutal cartels.
An unprecedented number of drug bosses have been captured or killed, leading to a splintering of their cartels and fierce infighting over territory.
Among those marching were relatives of Marisela Escobedo, a woman who was killed in northern Chihuahua state while protesting in front of government offices to demand justice for her killed daughter, another case that provoked national anger.
The poet's son, Juan Francisco Sicilia, was killed in Cuernavaca on March 28 with six other people. Some marchers had T-shirts that read "We are all Juan". Others had signs reading "Marisela Escobedo is here".