Diners were settling down for lunch at a restaurant in the center of Uhersky Brod, a town near Ziln of about 17,000 people not far from the Slovak border, when the gunman entered.
The result was one of the Czech Republic's deadliest mass murders in about 40 years.
Authorities haven't named the shooter, nor have they given any indication of his motivation. Interior Minister Milan Chovanec described him as a local man in his 60s who had a permit to own guns.
Reports suggest the gunman was mentally unstable and may have called a Czech TV station's crime line immediately before carrying out the attack.
"We have never seen anything like this before," said Tomas Tuhy, the head of the Czech Republic's national police. "This is a tragedy."
The gunman rushed into the then-packed Druzba restaurant and fired multiple times, Czech TV reporter Vaclav Cernohorsky told CNN, citing the town's mayor. The shooter then killed himself, the mayor reportedly said.
The mayor told journalists the shooter may have been mentally unstable, an assertion seemingly backed up by Chovanec.
Seven of those killed were men, meaning the other fatality was a woman, Czech prosecutors said in a statement.
One other person -- a waitress at the restaurant -- is now in serious condition in nearby Uherske Hradiste hospital, hospital spokeswoman Dana Lipovska said in a statement.
The attack follows other recent mass shootings around Europe, including in Paris and Denmark, that were later characterized as terrorism.
But that wasn't true in this case, according to Chovanec.
Suspected shooter called TV station
According to a crime line operator at the Czech TV station Prima, the shooter called the TV station just minutes before the incident.
Pavel Labduska from Prima said he received a call at 12:56 p.m. local time Tuesday. A man speaking in a quiet, slow voice told him the TV station should send a crew to Uhersky Brod because something was about to happen, he said.
Asked about the details, the caller said "he is being bullied by many people and no authorities are helping him," Labduska said. For that reason, the caller said, he would "do something about it."
Labduska said he realized the man was very stressed, breathing deeply and speaking with long pauses. The man told him he was at Marianske Square in Uhersky Brod and that he was going to harm people. He did not give him precise location, but said he was armed.
Labduska said he alerted the police and tried to keep the man on the line, but the man hung up on him. Within minutes, the shooting is said to have started.
When CNN asked Labduska if he was certain that the man who called was the same man who carried out the shooting, Labduska said the caller gave precise information just minutes before the event. He added that the man was very disturbed.