Some 30 people including children were injured Monday when a car plowed into a Carnival procession in the small German town of Volkmarsen, with police arresting the driver but declining to speculate on a motive.
Prosecutors in Frankfurt said the 29-year-old suspect was a German national who faces charges of attempted homicide over the incident in the western state of Hesse.
The investigation was continuing "in all directions," they said in a statement, after police stopped short of calling the incident an attack.
The drama came as Germany remains on high alert following a shooting spree by a far-right gunman in the city of Hanau, also in Hesse, last Wednesday, who killed 10 people.
Eyewitness reports at the Carnival parade described the driver plowing through a barrier in a silver car and driving straight through the crowd at high speed.
"It appears to have been an intentional act," a local police spokesman told reporters, but said the incident was not being classified as an attack until investigators had more information.
Around 30 people were injured, some of them seriously, the Frankfurt prosecutors said. Children were among those hurt.
The driver was also injured and was receiving medical care, prosecutors added.
Citing sources close to the investigation, Spiegel weekly said the driver had apparently "consumed a high level of alcohol."
Chancellor Angela Merkel said her thoughts are with the family of the victims, as she wished them "a speedy and complete recovery," according to her spokeswoman on Twitter.
Hesse state premier Volker Bouffier said he was "shocked at the terrible act."
But he added: "The circumstances surrounding this act remain unclear and I urge you not to speculate about possible motives."
As in many parts of the country, residents in Volkmarsen were celebrating Rose Monday, a highlight of annual Carnival festivities that sees adults and children dress up and attend parades where people play music and throw candies from floats.
Steffen Roettger said his two daughters were at the parade and called him right after the incident happened at around 1330 GMT.
"My 10-year-old was pulled aside and only narrowly avoided being hit," he told NTV broadcaster.
He said the girl was "in shock" and needed medical attention after seeing people "lying around everywhere."
"She won't get those images out of her head in a hurry," he said.
Elmar Schulten, a reporter for the local Waldeckische Landeszeitung newspaper, told the Bild daily that locals in the town of some 7,000 people were in disbelief.
"We always thought this kind of thing only happened elsewhere," he said.
Images from the scene showed police officers and rescue vehicles next to a silver Mercedes hatchback, having apparently come to a halt outside a Rewe supermarket.
A pile of debris can be seen on the road next to the car, including a broken wooden cart, a knocked-over traffic cone and bottles of sparkling wine.
Several dozen people were pictured milling around on the sidewalk, many in colorful costumes, before the area was sealed off by police.
Police in Hesse announced on Twitter that all Carnival parades across the state had been canceled as a precaution.
In last week's attack in Hanau, the gunman – who left behind a racist manifesto – first opened fire at a shisha bar and a cafe, killing nine people, before shooting dead his mother and himself.
The rampage fueled concerns over Germany's increasingly emboldened far-right scene, after a pro-migrant politician was murdered in June and an anti-Semitic attack on a synagogue left two dead in the city of Halle last October.
Germany's deadliest terror attack in recent history took place in 2016 when a terrorist drove his truck into a crowded Berlin Christmas market, killing 12 people.
The attacker, a failed Tunisian asylum seeker, had pledged allegiance to the Daesh terrorist group.
The Christmas market assault prompted police across Germany to tighten security at public gatherings.
After the Hanau shootings, Interior Minister Horst Seehofer on Friday vowed to put more police at mosques, train stations, airports and borders.