Authorities said it was believed to be an attack and the suspect - an Afghan asylum-seeker - was arrested.
Participants in a demonstration by the service workers' trade union Verdi were walking along a street near downtown Munich about 10.30am when the car overtook a police vehicle following the gathering, accelerated and ploughed into the back of the group.
Officers arrested the suspect after firing a shot at the car, deputy police chief Christian Huber said.
He added that at least 28 people were believed to be injured, some of them seriously.
Munich mayor Dieter Reiter said he had been informed that children are among those injured.
"I am deeply shocked," Reiter said.
"My thoughts are with the injured."
A damaged Mini could be seen at the scene, along with debris including shoes.
The suspect was a 24-year-old Afghan asylum seeker, Huber said.
"It is suspected to be an attack - a lot points to that," Bavarian governor Markus Söder told reporters at the scene.
Söder called the apparent attack "a punch in the face" for Germany and said that there must be consequences once authorities determine exactly what happened.
The incident follows a series of attacks involving immigrants in recent months that have pushed migration to the forefront of the campaign for Germany's February 23 election.
Most recently, a two-year-old boy and another person were killed in a knife attack in Aschaffenburg, also in Bavaria.
The Bavarian capital will have a heavy security presence in the coming days because the three-day Munich Security Conference, an annual gathering of international foreign and security policy officials, opens on Friday.
Bavaria's state interior minister Joachim Herrmann said authorities do not believe the car ramming was connected to the conference but they still need to determine the motive.
with DPA