A knife-wielding man stabbed two police officers in the Belgian city of Liege, stole their weapons, and then shot them and a bystander dead in an attack that prosecutors fear could be terror-related.
The man, who was later killed by police, approached two police officers from behind while carrying a knife and stabbed them several times, said Philippe Dulieu, spokesman for the Liege prosecutor's office.
"He then took their weapons. He used the weapons on the officers, who died," Mr Dulieu told reporters.
Mr Dulieu said the attacker then shot dead a 22-year-old man in a vehicle parked nearby, and took a woman hostage in a school close to where the shooting took place outside a city cafe.
"Liege police intervened. He came out firing at police, wounding a number of them, notably in the legs.
He was shot dead," the spokesman said.
A senior official at the federal prosecutor's office told The Associated Press that "there are indications it could be a terror attack".
Despite this, Belgium's crisis centre said it saw no reason to raise the country's terror threat alert for now.
When asked about the report that the attack was terror-related, Liege city hall Michel Firket said: "I know nothing formal about that. The police is doing its investigation. There are no formal conclusions."
A spokeswoman for the city mayor's office, Laurence Comminette, told reporters that the children at the school were all safe.
Prime Minister Charles Michel said only that "there was a serious incident". He was rushing to the crisis centre to get more information.
Yves Stevens, of Belgium's federal crisis centre, said that security in Liege is now under control, and that there was no reason yet to raise the national terror threat level.
"There is absolutely no confirmation yet that the incident is terror-related," Mr Stevens said.
Video posted on Twitter by a person claiming to be a witness showed people running in the area. About six gunshots could be heard.
Belgian police and military have been on alert since suicide bombers killed 32 people at the Brussels airport and subway system in 2016.