The gunman also took a female cleaner hostage at a school before being killed by police. Two other police officers were also injured.
The man’s motive is not yet clear but the incident is being treated as terrorism.
Police sources quoted in local media said the man was heard shouting “Allahu Akbar” (“God is greatest” in Arabic).
The deaths of the two female officers were confirmed by the local mayor’s office, AFP news agency reported.
Belgian broadcaster RTBF said the gunman was let out from prison on temporary release on Monday where he had been serving time on drug offences. It said that he may have been radicalised while in jail.
The shooting unfolded late morning on Tuesday near a cafe in the city centre.
Prosecutors said the man followed and attacked the officers with a knife, before taking a gun from them and opening fire.
He also shot dead a 22-year-old man who was sitting in the passenger seat of a parked car as he walked in the direction of a nearby school, where he briefly took a member of staff hostage, prosecutors said.
Armed police officers then arrived at the scene and “intervened”, prosecutors added.
The attacker began firing at the officers in an attempt to escape, injuring a number of them “around their legs”, before he was shot dead.
Footage on social media showed people running to safety as several gunshots rang out. Children at the school were moved to safety.
Liege city authorities later tweeted: “The children in the local schools are safe.”
Belgium’s Prime Minister Charles Michel said he was following the situation closely and expressed his support for those caught up in the shooting.
Violence lâche et aveugle a #Liège. Tout notre soutien pour les victimes et leurs proches. Nous suivons la situation avec les services de sécurité et le centre de crise.
— Charles Michel (@CharlesMichel) 29 maggio 2018
Belgium’s Interior Minister Jan Jambon said that investigators were trying to establish “exactly what happened”, adding: “Our thoughts are with the victims of this horrible act.”
What’s the wider situation?
Belgium remains on alert after a series of jihadist attacks in the country and in neighbouring France.
A Brussels-based cell was involved in the 2015 Paris attacks which left 130 people dead in several locations.
russels itself saw three suicide bombings in March 2016, with 32 people killed. Both the Paris and Brussels attacks were claimed by the Islamic State-group.
Later in 2016 a man attacked two police officers with machetes while shouting “Allahu Akbar” before being shot dead.