The shooting was about 12:30 p.m., police said. Witnesses said the man who was shot had been inside Six Star Market at Riverview Boulevard near McLaran Avenue. He left the market, followed by a market employee, witnesses said.
Two police officers arrived and the man, 23, brandished a knife at them, St. Louis Police Chief Sam Dotson said. The officers drew their weapons. The man acted erratically and refused orders to drop the knife, Dotson said.
The man yelled "Shoot me, kill me now," Dotson said, then came at one of two officers with a knife.
The officers fired at the man, hitting him. He died at the scene. Officers were not hurt, police said.
There was a large police presence in the area after the shooting. About 150 bystanders were milling about the area, and some were chanting "hands up, don't shoot," a common refrain at the Ferguson shooting protests.
Nearby Ferguson has been roiled by 10 days of protests and violence, following the fatal shooting of Michael Brown, an unarmed black teenager by a police officer.
Schools were closed and streets were quiet Tuesday, hours after peaceful demonstrations once again descended into chaos with police coming "under heavy gunfire" and arresting 31 people. But everyone was bracing for whatever Tuesday night might bring.
"I don't want anyone to get hurt. I don't want an officer to get hurt, I don't want a citizen to get hurt. We have to find a way to stop it," says Missouri State Highway Patrol Captain Ron Johnson.
With files from MyFoxNow and St Louis Dispatch