At least 17 people, including a child, were killed in the blast, which took place on a busy market street in the middle of the day - a rarity.
Kostyantynivka, in Ukraine's eastern Donetsk region, is near the frontline.
Videos on social media show a bright orange explosion at the far end of a street where people were out shopping. Russia is yet to comment on the attack.
Zelensky, who has blamed Moscow, said those killed were "people who did nothing wrong" - and warned the death toll could increase.