Police responded to reports a car was on fire but when they arrived discovered a man with a knife who lunged at the two officers several times.
Video posted to social media of the incident showed the attacker repeatedly swinging the knife at officers, while a member of the public pushes a trolley into the attacker, knocking him over. Towards the end of the video, gunshots can be heard.
Victoria Police later confirmed the man had been shot in the chest and was in hospital in critical condition, while several others are being treated for stabbing injuries. Victoria's ambulance service said that three injured people were being treated at the scene.
Superintendent David Clayton said at an impromptu press conference as the police were attempting to disarm the man, passers-by were shouting at them that people had been stabbed.
One of the victims died at the scene while two others had been taken to hospital for treatment, he said.
The police were not looking for anyone else in connection with the incident and there was no known links to terrorism yet, although "we will keep an open mind as to whether there is any link", he told reporters.
Bomb disposal experts had now arrived and were working to make the area safe, while the fire brigade had put out the car on fire.
The incident caused authorities to activate an automated alert system, sending messages to Melbourne citizens' phones warning them of "an incident at the corner of Bourke and Swanston streets" and urging them to "avoid the area".
Police are extending a cordon of the area and Supt Clayton asked for anyone who had seen the incident and taken any photos or videos to come forward and share them with detectives.
Australia has been on heightened alert from 2015 for attacks by home-grown militants returning from fighting in the Middle East.
The street where the car caught fire was the scene in January 2017 of a fatal but not terror-related incident in which a man drove his car at pedestrians at high speed, killing six people and wounding about 30.