He then approached a convenience store with a jerry can, attempting to obtain fuel before assaulting the attendant.
Armed with a firearm, he then allegedly tried to steal a Honda Civic at an intersection, allegedly pointing the weapon at the occupant.
The driver refused and ran to a nearby store.
The alleged offender then pointed the firearm at the head of the driver of a Mitsubishi wagon before taking off in the car.
The Police Air Wing was tracking the stolen vehicle, which was driving erratically.
The alleged offender then got out of the car and carjacked another person at gunpoint in North Malbourne, taking their Hyundai sedan.
He then drove the second stolen vehicle into the Melbourne CBD, eventually abandoning it on Lonsdale St just after 8.45am.
The man put several pedestrians at risk by nearly hitting them as he drove through the city erratically, Sky News Australia reported.
Specialist officers pursued the 48-year-old on foot and soon after arrested him.
A firearm was seized, police said.
He was transported to hospital with non-life-threatening injuries.
Two people told the ABC that the man pointed a gun at them in a hotel, where he was eventually arrested.
Humberto Aguilar, a guest at the hotel, said the man pointed a gun at him before being apprehended by police.
“He put the gun on me. I had my back to the wall”, he told the outlet.
A chef at the hotel, Geoff, said he came out of the lobby bathroom when the weapon was aimed at him.
“I just saw this gun pointing at me and sort of waving and this guy screaming,” he told the ABC.
Detective Senior Sergeant Luke Flint said that as soon as police heard of the incident, a “significant and immediate response” was organised that ultimately ended with elite tactical operators taking the man into custody.