Children were among the injured after the red SUV broke through barriers and drove down the road at high speed, knocking parade participants of the Waukesha Holiday Parade in Wisconsin to the ground.
Waukesha authorities confirmed the deaths in a statement late on Sunday (local time).
Police said the numbers could change as many people transported themselves to hospitals.
No names or ages of the dead were immediately released.
A live stream showed the car speeding along a road through barriers, as people lined the streets to watch.
Police confirmed they had recovered a suspect’s vehicle, and have now said they have a person of interest in custody.
Chief Thompson said it was a “very fluid investigation”.
“There is no other threats involved. The scene is now safe,” Chief Thompson said.
Waukesha Police did issue a “shelter in place” warning, with people in the affected area told to wait for an all-clear alert.
However, Chief Thompson said that was intended to keep citizens away from an active crime scene, and that it was no longer in effect.
He said it was unknown if the incident was terror-related.
He confirmed a police officer had fired at the vehicle, but nobody had been injured.
The driver was not believed to have used a gun.
Schools shut for tomorrow
The School District of Waukesha has cancelled classes for tomorrow, and will provide counsellors for “students and staff in need of support services”.
Children’s Wisconsin – a pediatric hospital in Milwaukee – says it is treating 15 patients who were hurt in the parade.
“Children’s Wisconsin immediately prepared for a surge of patients after receiving notification from law enforcement of the incident at the Waukesha Holiday Christmas Parade,” the hospital said in a statement.
“As of 8pm, Children’s Wisconsin received 15 patients from the incident, with no reported fatalities at our hospital at that time.”
Aurora Medical Centre – Summit, a hospital in Waukesha County, told CNN it is treating 13 patients: three in critical condition, four in serious condition and six in fair condition.
“We are deeply saddened by today’s senseless tragedy and our hearts are with the Waukesha community,” a statement from the hospital said.
Froedtert Hospital in Milwaukee – the only Level I trauma centre in southeast Wisconsin – confirmed to CNN that it also is treating patients from the Waukesha incident but is not providing a specific number nor conditions.
Level I trauma centres typically care for the most critically ill patients.
Among the overall injured are a Catholic priest, multiple parishioners and Waukesha Catholic school children, according to Sandra Peterson, the communication director for the Archdiocese of Milwaukee.
Corey Montiho, a Waukesha school district board member, told the Milwaukee Journal Sentinel that his daughter’s dance team was hit by the SUV in Waukesha, in Milwaukee, Wisconsin at about 4.40pm local time (9.40am AEDT).
“They 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 said.
“My wife and two daughters were almost hit. Please pray for everybody. Please pray.”
The White House is monitoring the situation, according to an administration official.
Angelito Tenorio, a West Allis alderman who is running for Wisconsin state treasurer, told The Associated Press that he was watching the parade with his family when they saw the SUV come speeding into the area.
“Then we heard a loud bang,” Mr Tenorio said.
“And after that, we just heard deafening cries and screams from the crowd, from the people at the parade. And people started rushing, running away with tears in their eyes crying.”
Waukesha Mayor Shawn Reilly said it had been a “traumatic” event.
“We don’t have all the details, we can’t provide details at this point,” he said.
A witness, Milwaukee Journal Sentinel intern Kaylee Staral, told CNN the car ploughed through the crowd, leaving up to 30 people on the ground.
“There were a lot of families with small children there,” Ms Staral said.
“It hit a lot of people. After the SUV left there were multiple people on the ground.
“I don’t believe the driver said anything, there was a lot of screaming.”
Ms Staral said she had seen some people injured in front of her.
“Right in front of me in the little spot where I was sitting, probably four people were down – so there were a lot of people that ran to go check on them,” she said.
“I believe that the four people in front of me were still breathing but they were down, they were not moving.”
Video and photos from the scene show multiple families lining the street, as bands and dancers moved down the road ahead of slow-moving classic cars.
Waukesha Police Department said on Facebook: “Please avoid the downtown area for the time being.”
With Associated Press and CNN