German police have arrested an Afghan asylum seeker after his car rammed into a crowd, injuring about 30 people — some of whom remain in a serious condition.
It comes on the eve of an international security conference in the city on immigration and ahead of the German election next weekend.
The Mini Cooper car barrelled into a trade union demonstration, leaving victims and their belongings scattered.
Shoes, glasses and a baby-stroller were left in the street.
Munich Mayor Dieter Reiter said several people were receiving treatment for severe injuries and were in a "life-threatening condition".
Here's what we know.
How it unfolded
Police said a white car had approached police vehicles that were accompanying a demonstration of striking workers, before speeding up and slamming into people.
One shot was fired at the suspect and it was unclear if he was wounded, police said.
Police set up a gathering point for witnesses in the Loewenbraeukeller, one of Munich's oldest beer halls.
A passer-by said he witnessed the incident from a window of a neighbouring office building.
The car, a white Mini Cooper, had threaded its way between the police vehicles and then accelerated, he said.
Another witness said she had seen part of the incident from a building. The car had accelerated and hit several people in the crowd, she said.
Alexa Graef, another witness at the scene, said she saw the car drive into the crowd, "which looked deliberate".
"I hope it's the last time I see anything like that," Ms Graef said, whose office overlooks the junction where the car struck.
People in the crowd had been taking part in a strike held by the Verdi public sector workers' union whose leader, Frank Werneke, expressed shock but said he had no further details.
In the aftermath, a mix of people, including some who had attended the protest before the incident, gathered by candlelight.
Authorities were still coming to grips with the incident as emergency services attempted to move the car that rammed into the crowd hours earlier.
What we know about the driver
Police said they had "indications of an extremist motive" and the investigation had been handed to the regional prosecutor's office.
Bavaria Premier Markus Soeder told reporters: "It was probably an attack."
A spokesperson for the General Prosecutor's office in Munich confirmed to Reuters the suspect was named Farhad Noori.
He arrived in Germany in 2016 from Afghanistan as an unaccompanied minor refugee.
His asylum request was rejected by German authorities but he found work and was able to remain legally in the country with a Munich residence permit, according to officials.
Police said he was known to authorities from investigations in which he had been a witness because of a former job as a store detective.
German Chancellor Olaf Scholz condemned the "awful" attack and promised severe consequences.
"From my point of view it is quite clear: this attacker cannot count on any mercy, he must be punished and he must leave the country," Mr Scholz told reporters.
German election looms with immigration in focus
The suspected attack came hours before international leaders including US Vice-President JD Vance and Ukrainian President Volodymyr Zelenskyy were due to arrive in the city for the Munich Security Conference.
Immigration and security issues have dominated campaigning ahead of next Sunday's German election, especially after other violent incidents in recent weeks.
In December, six people were killed in an attack on a Christmas market in Magdeburg, and last month a toddler and adult were killed in a knife attack in the Bavarian town of Aschaffenburg.
The Scholz government has moved to make asylum rules stricter and speed up deportations, including to Afghanistan.
Visiting Munich after the attack, Interior Minister Nancy Faeser vowed to do everything possible to ensure more deportations to Afghanistan.
"We have to continue with deportations … even to Afghanistan, a very difficult country," she said.
"We will try to do everything to achieve this."
In August, the German government sent back the first Afghan asylum seekers to their home country since the Taliban government's return to power in 2021.
The German government's policy drew criticism from Amnesty International's secretary general in Germany last year.
"The current debate about an alleged emergency situation and rejections of those seeking protection at German borders endanger European cohesion," Julia Duchrow said.
"Asylum policy challenges can only be solved together and only at the European level.
"The federal government must not cut the umbilical cord to Europe by relying on national solo efforts and throwing European legal requirements overboard."
ABC/wires