The attacker, who reportedly screamed Allahu Akbar, ran into an Edeka shop in the northern city of Hamburg and knifed a customer to death before slashing at four others as he fled.
He ran off but was pursued by passers-by who wrestled him to the ground and called police who made an arrest.
Heavily armed officers have locked the area down and police helicopters have been seen above the crime scene. A motive for the knifing has not yet been established.
According to Bild, the man shouted 'Allahu Akbar' as he launched the attack in a branch of Edeka, Germany's largest supermarket chain.
A witness told the newspaper: 'The man has suddenly struck out on customers, there was one dead and several injured.'
A major manhunt got underway and 30 minutes later pictures emerged of a suspect covered in blood, with a white bag over his head in a police car.
He is understood to have suffered minor injuries as he was being held by bystanders.
Hamburg police said on Twitter that there was only one attacker and that the motive for the incident in Hamburg's Barmbek district wasn't immediately clear.
They added that 'initial reports about robbery as a possible motive so far have not been confirmed.'