School bands and a dance troupe of grannies were among those marching through the city of Waukesha when a red SUV came speeding down the road.
It hit dozens of people, including children.
One person is in custody. The incident does not appear “at this time” to be an act of terrorism, one official said.
The suspect appeared to have been fleeing another scene when he ran into people at the parade, the law enforcement official – who is familiar with the early findings of the investigation – told the BBC’s US partner CBS News.
Local resident Angelito Tenorio told the Milwaukee Journal Sentinel newspaper he had just finished marching in the parade when the SUV “put the pedal to the metal and just [started] zooming full speed along the parade route” at about 16:40 (22:40 GMT) on Sunday.
“Then we heard a loud bang, and just deafening cries and screams from people who are struck by the vehicle,” he said.
Corey Montiho said his daughter’s dance team was hit by the SUV.
“There were pom-poms and shoes and spilled hot chocolate everywhere. I had to go from one crumpled body to the other to find my daughter,” he told the paper.
The parade in Waukesha – a community of about 72,000 located to the west of Milwaukee – is traditionally held every year on the Sunday before Thanksgiving, and includes fancy dress, floats, dancers and marching bands. This year’s theme was “comfort and joy”.
Families lined the sides of the road to watch the event, which was returning after a year’s absence due to the coronavirus pandemic.
One video shared on social media shows the car crashing at high speed through street barriers, while another shows the vehicle driving into what looks like a group of musicians.
Police officers ran down the street during the incident, telling people to take shelter in shops. Police chief Dan Thompson told reporters that officers had fired at the car to try to stop it.
Jason Kellner told the New York Times newspaper he had just watched his son go past with his school marching band when the car came towards the crowd and “started mowing people down”.
“I’ve never felt a worse feeling; wondering what I’m going to find when I get to my kid,” he said.
Mr Kellner found his son standing unharmed at the side of the road, but saw several injured people and pulled a bloody saxophone off the street.
Another witness told Milwaukee’s Fox6 TV station that there was silence, followed by screaming, running and checking on those injured after the vehicle hit a dance team of girls aged between about nine and 15.
The Milwaukee Dancing Grannies said some of its members “were impacted and we are waiting for word on their conditions”.
“Please keep the Grannies, all those injured, and all those who witnessed this horrible event in your thoughts and prayers,” the group wrote on its Facebook page.
The Roman Catholic Archdiocese of Milwaukee said one of its priests, multiple parishioners and students at a local Catholic school were among the injured.
Photos of a red SUV with a crumpled bonnet parked in a driveway were posted on Twitter by TV station CBS 58.
Chief Thompson said officers had recovered a “suspect vehicle” and a person of interest was in custody, but gave no further details. He added that the investigation was “very fluid”.
Officials in Waukesha warned that the number of fatalities and injuries could change as additional information is collected. They said some people had transported themselves to local hospitals.
Fire chief Steven Howard told reporters that his department had taken 11 adults and 12 children to nearby hospitals after the incident.
The Children’s Wisconsin hospital said it had received 15 patients as of 20:00, while the Aurora Medical Center-Summit said it was treating 13 people, including three in a critical condition.
Mayor Shawn Reilly described the incident as a “horrible, senseless tragedy”.
“I am deeply saddened to know that so many in our community went to a parade but ended up dealing with injury and heartache,” he said.
Waukesha’s public schools will be closed on Monday, and counselling services have been made available to those affected. (Courtesy BBC)