Witnesses said the attack at the Cornwall Centre was sudden and surprising.
"I heard people screaming, like, in chaos, and then there was a bunch of people running around all over," witness Summer Pascal told radio station CJME.
Four people were hurt; three were taken to hospital and one was treated and released at the scene. Their conditions weren't immediately known.
Passersby snapped pictures of the carnage, including one posted to the Internet showing a young man lying in a pool of blood as he was being attended to by emergency workers.
"He was lying down and he got up," said Pascal. "His neck was just gushing blood all over. There was blood everywhere, a big pile of it."
Two police officers who happened to be at the mall as part of their regular downtown patrol were quickly on scene.
"We saw this kid come in, and then we heard all these sirens so we came back, and the cops tackled him," said witness Tyler Jordan.
"The two police officers challenged the male to drop the knife," police said in a news release.
"Fortunately, the police officers were able to de-escalate the situation by giving direction; the suspect responded by throwing the knife at the officers, but once he was disarmed, he was taken into custody without further incident."
Police had no idea about the motive behind the attack.
Police cars were parked at the mall into the night. The glass doors were locked, but inside, police tape could be seen stretched down the corridors and in front of the stores.
-- With files from CJME