President Volodymyr Zelensky said those killed were “people who did nothing wrong” – and warned the death toll could increase.
Kostyantynivka, in Ukraine’s eastern Donetsk region, is near the front line.
“This Russian evil must be defeated as soon as possible,” Mr Zelensky added. The authorities in Moscow are yet to comment on the claims.
Among the 16 dead are a child, with at least 20 others thought to be injured, according to information shared by Ukrainian Prime Minister Denys Shmyhal.
“All services are working,” he said, adding: “The fire is contained.”
A market, shops and a pharmacy are reported to have been hit.
Videos circulating on social media appear to show the moment of the explosion and its graphic aftermath.
Officials in Russia have not yet claimed responsibility for the attack. They have previously denied targeting citizens.
The attack on Wednesday coincided with a visit by US Secretary of State Antony Blinken to Ukraine’s capital, Kyiv, where he was due to meet Mr Zelensky.
It was assumed he would announce a fresh US aid package for the war-torn country during his trip.
Kostyantynivka, a small market town, sits close to the battlefield.
Source BBC News