The shooting incident between two men in their twenties began in a queue for the cash register at a Migros supermarket at Les Cignes in Cornavin.
"I heard three or four shots and saw smoke,” a witness told newspaper 20 minutes.
At first the witness believed the sound to have come from firecrackers, but then panic swept across the store.
“A man had been shot in the head and his blood was spilled on the floor,” he told the newspaper.
According to one Migros employee, the two men “seemed marginalised and seemed to know each other.
“It was just a brief trivial altercation, so I did not think it would end like that,” he told newspaper La Tribune de Genève.
After the initial quarrel, one of the two men left the supermarket to visit other shops on the same floor, before being followed by the other young man. Then, in front of a dry cleaning shop, the first man turned around and shot the second.
"The man was wounded in the head and arm," said Jean-Philippe Brandt, spokesman for the police.
According to other witnesses, the shooter calmly walked out of the shopping centre and went to a Chinese restaurant just a few steps away.
"He came in with a big brown dog and he looked drugged,” a waiter told the newspaper. The alleged shooter asked for a cup of tea and the menu, but then asked to pay without ordering food.
Before he could leave the restaurant, however, four police officers arrived to arrest him. “He still had the gun in his pocket,” said the owner of the restaurant.
The victim, shot in the head and one arm, was transported to hospital in critical condition. "His life is in danger," said Brandt, adding that he could not provide more details on the shooting.