The demonstrators and their supporters blew whistles and chanted "nothing for the private sector" as they marched from leading hospitals in Madrid to the landmark Puerta del Sol square in the centre of the Spanish capital.
Police put the turnout at between 3,000 and 5,000 people. However the protest organizers gave an estimate of 70,000 people.
It was the fifth "white tide" demonstration held this year in Madrid, named after the colour of the medical scrubs worn by many of the protesters.
"We have to keep up the pressure, we can't let the government go ahead with its plans, it will not lead to more efficient services, on the contrary, healthcare will get worse," said Abel Alvarez, a 42-year-old X-ray technician at a Madrid hospital.
The conservative government of Prime Minister Mariano Rajoy has slashed health spending by €7 billion ($9.1 billion) a year as part of a campaign to squeeze 150 billion euros out of the crisis-hit country's budget by 2014.
The Madrid regional government plans to outsource management of six of 20 large public hospitals and of 27 health centres of the 270 in the region.
It argues the measure is needed to secure health services during a steep recession and meet deficit-reduction targets.
But Spanish healthcare workers and patients say private providers will put profits before quality and lead to a deterioration of the public health system.
"I have a chronic illness and it worries me that the government wants to dismantle the public healthcare service which generally works well," said 37-year-old Susana Sotillo, who came to the protest with her two daughters aged 7 and 5.
Spain's public healthcare system was ranked seventh in 2000 on the only occasion when the World Health Organisation compiled a league table comparing healthcare systems around the world.