Forty people were arrested in Seoul when protests over government labour policies and the handling of last year's ferry disaster spiralled into violence.
Thousands of demonstrators, many of them carrying banners and wearing yellow jackets, the colour identified with supporters of the families of the ferry disaster victims, occupied several city centre streets.
They clashed with police officers, who created tight perimeters with their buses and aggressively blocked the marchers from reaching the presidential Blue House.
Several police officers and protesters were injured during the disturbance, said an official from the National Police Agency.
Protesters attacked the police buses with sticks and tried to move the vehicles by pulling ropes they tied near the wheels and police responded by hitting them with water cannons and pepper spray.
Many buses were vandalised by protesters who spray-painted anti-government slogans on them. Some buses were left with smashed windows and damaged tires, police officials said.
Most of the protesters were dispersed around midnight, but some of them continued to stage sit-in protests in nearby streets this morning.
South Korean labour groups have been denouncing a series of government policies they believe will reduce wages, job security and retirement benefits for state employees.
Marches on May 1 are rooted in labour movements worldwide. The demonstrations in Seoul were joined by supporters of the ferry victims' relatives who want a more thorough investigation into the sinking.
At an earlier demonstration on April 18, dozens of people were hurt and more than 70 police buses were destroyed in a violent clash between police and demonstrators.
The ferry disaster continues to be a thorny issue for increasingly unpopular President Park Geun-hye, despite her bowing to relatives' demands to proceed with the difficult and potentially dangerous job of salvaging the vessel.
Relatives also want a new investigation to look into the government's responsibility for the disaster, which was blamed in part on official incompetence and corruption.
A total of 304 people, most of them students from a single school, died when the ferry Sewol sank last year. Nine victims' bodies have not been found.