Police and young anti-government protesters clashed in the Peruvian capital, Lima, over the weekend.
A rights group said at least 18 protesters had been injured in protests held on Saturday and Sunday, dubbed Gen Z march by the organisers. A police officer suffered burns, officials said.
Groups of young people, mainly under 30 years of age, were joined by bus and taxi drivers and marched towards Congress to express their anger over corruption scandals and growing insecurity.
The protesters, some of whom threw stones and other missiles, were dispersed by police firing tear gas and rubber bullets, AFP news agency reported.
The protests first erupted on Saturday 20 September, triggered by a pension reform that requires young people to pay into a private pension fund.
The approval rating of President Dina Boluarte has been in the single figures for months and many Peruvians say they want her to leave office.
We are marching against corruption, for life, and against the crime that is killing us every day, 28-year-old Adriana Flores told AFP.
The Gen Z protesters were joined by transport workers who claim the government is not doing enough to combat extortion. Taxi and bus drivers report being threatened by gangs to pay protection money.
Some held placards reading We demand a life without fear.
The response from police has drawn criticism from human rights groups, which stated that there was no justification for using such force against the protesters.
Marching towards Congress, demonstrators chanted for a better Peru and sang the national anthem, expressing their frustration with legislative members accused of self-serving actions.
Facing growing discontent, President Boluarte's administration is under intense scrutiny, especially after she increased her own salary amid record low approval ratings.