A man wielding a skewer and knife went on the rampage in the French city of Lyon on Saturday, leaving a 19-year-old man dead and eight others injured, three of them critically.

An eyewitness in Villeurbanne, a suburb of Lyon, described the attack as frenzied. “There was a man at the 57 [bus stop] who started striking out with a knife in all directions,” said a young girl whose top was stained with blood.

“There was blood everywhere,” she added.

Of the eight people wounded in the attack, three were in a critical condition, said the prosecutor’s office. Paramedics treated another 20 people at the scene for shock.

The mayor of Lyon, Gérard Collomb, a former interior minister, visited the site of the attack but in comments to journalists would not be drawn on what had provoked the incident. The man who carried out the attack had acted quite suddenly, he said.

Facebook Twitter Pinterest French police and rescue teams at the Laurent-Bonnevay tube station in Lyon where the suspect was overpowered by security staff. Photograph: Olivier Chassignol/EPA

The mayor of Villeurbanne, Jean-Paul Bret, paid tribute to people at the scene and security staff at the nearby metro station who overpowered the suspect as he tried to make his escape. Police arrested the suspected attacker and were holding him in custody on suspicion of murder and attempted murder, the Lyon prosecutor’s office told AFP.

The reasons for the attack were still not clear. The national anti-terrorism prosecutor’s office had been informed but had not taken charge of the case. A police source said the alleged perpetrator was an Afghan asylum-seeker previously unknown to the police and the intelligence services.

A group representing the region’s mosques also issued a statement condemning the killing and the “deadly madness that inhabits those who try to sow hatred and violence”.