At least 19 people were injured when an SUV hit pedestrians on Flinders Street, a busy junction in the centre of the city, said Victoria Police.
Of the injured, four are in a critical condition and 15 are in a stable, according to Australian Premier Daniel Andrews.
A patient in the Royal Children’s Hospital is in a stable condition.
Acting police commissioner Shane Patton said the alleged driver of the car was a 32-year-old man of Afghan descent who was known to police.
He is not currently on bail or subject to any corrections order but has "a history of drug use and mental health issues".
The alleged driver was arrested by an off-duty police officer. Both men are among those receiving treatment for less serious injuries.
Another 24-year-old man was arrested but not connected to the incident.
He was seen filming the collision and allegedly had knives in his bag.
Patton said there was no evidence to indicate the incident was terror-related.
The incident happened just after 4.30 pm local time (6.30 am CET).
Australian Prime Minister Malcolm Turnbull tweeted saying his "thoughts and prayers" were with victims and emergency services.
Follow live updates here: