A baby was among four people killed and 15 injured when a car tore through a pedestrian shopping street in the southwestern German city of Trier, police said, after arresting the driver.
Prosecutor Peter Fritzen said the driver, a 51-year-old Trier native, appeared to be suffering from "psychiatric problems" and had been under the influence of alcohol whilst at the wheel of his silver SUV.
Police, who have been questioning the suspect, said they had "no indications of a political motive".
Prosecutors are considering requesting that the suspect be placed in psychiatric care, Fritzen told reporters.
At the same press conference, Trier mayor Wolfram Leibe said among the dead were a nine-month-old baby and a 73-year-old woman.
"I think this is Trier's darkest day since World War II," he said.
Also killed were a 25-year-old woman and a 45-year-old man. Fifteen people were injured, several seriously.
Police said the vehicle had ploughed through the street at high speed for about a kilometre before a police car forced the driver to a halt.
Malu Dreyer, premier of the state of Rhineland-Palatinate where Trier is located, expressed shock that a baby was among those killed and shared her condolences with all the affected families.
The baby's mother was being treated in hospital for injuries sustained in the rampage.
Witnesses had earlier described seeing people, including a young child in a stroller, being flung into the air as the car struck them.
Smartphone footage showed the presumed driver lying face down on the street, being held down by several officers next to the damaged SUV. He was the sole occupant of the vehicle.
Mr Leibe described the incident as "a horror scene" and said "many people are traumatised".
Police spokesman Uwe Konz told AFP it remained unclear what exactly had happened, saying "the background still needs to be clarified".
Chancellor Angela Merkel's spokesman Steffen Seibert on Twitter called the incident "shocking". He said the country's thoughts were with the "relatives of the deceased, the many injured and with all those who are helping to care for those affected".
Picturesque Trier, near the border with Luxembourg, traces its history back to the Roman Empire and is often called Germany's oldest city.
Although Germany is grappling with a second coronavirus wave that has forced restaurants, bars, sports and cultural centres to close, retailers have been allowed to stay open and many people were out doing their Christmas shopping.