The midday attack on the city hundreds of kilometres from the front lines and from invading Russian troops came as European Union officials convened in The Hague to discuss war crimes in Ukraine.
Images of charred remains of upturned cars surrounded by burnt debris next to a business gutted by fire were distributed by officials.
"There were eight rockets, two of which hit the centre of the city," Mr Zelenskyy said during an address to European officials at The Hague.
"Twenty people have died, including three children. There is a large, large number of wounded."
Rescuers later updated the death toll to 23, saying the search for another 39 people was continuing.
UN Secretary General Antonio Guterres said he was "appalled" by the attack and called for accountability for such assaults on civilians.
And Mr Zelenskyy led a moment of silence before urging European and International Criminal Court officials to open a "special tribunal" into Russia's invasion.
"I believe it is inevitable that International Criminal Court will bring accountability to those guilty of crimes under its jurisdiction: war crimes, crimes against humanity, genocide," he said.
The ICC in The Hague opened an investigation into possible war crimes in Ukraine days after Moscow's forces invaded. The court sent dozens of investigators to the country to gather evidence.
Russia invaded on February 24 and the conflict has killed thousands of people, destroyed cities and forced millions to flee their homes.
"Every day, Russia kills civilians, kills Ukrainian children, carries out missile attacks on the civilian facilities where there is no military target," Mr Zelenskyy said after the Vinnytsia attack.
"What is this, if not an open act of terrorism?"
A Ukraine military spokesman said its forces had managed to knock out two cruise missiles from a barrage that were launched from a Russian submarine in the Black Sea and caused widespread damage in Vinnytsia.
Deadly strikes in central Ukraine have become relatively rare, but the war has raged around cities including Mykolaiv in the south, which the presidency said was hit by a "massive missile strike".
"Two schools, transport infrastructure and a hotel were damaged," the presidency said in its morning military update on Thursday.
The skeletal insides of one building gutted by the strikes were visible in images distributed by local officials, with municipal workers clearing bricks and rubble.
The heaviest fighting in Ukraine, however, has focused recently on the industrial Donbas region in the east.
Moscow-backed troops there said on Thursday that they were closing in on their next target, after wresting control of sister cities Lysychansk and Severodonetsk two weeks ago.
"Siversk is under our operational control, which means that the enemy can be hit by our aimed fire all over the area," a pro-Moscow rebel official, Daniil Bezsonov, told Russian state-run news agency Tass.
In a Ukrainian trench position along the eastern front line, a soldier, 25, who called himself Moryak, was working to fortify defences.
"We hide when they shell, we dig when it's calm," another soldier nearby told AFP.
A fellow serviceman in his trench dismissed the idea that Ukrainian and Russian forces could reach an agreement to halt fighting, saying their goal was "total victory".
Several rounds of negotiations to end the fighting at the start of the conflict fell through, but delegations from Kyiv and Moscow met in Istanbul this week to discuss unblocking Ukraine's grain exports.
The meeting involving UN and Turkish officials ended after more than three hours with an agreement to meet again in Turkey next week.
Mr Zelenskyy said "the entire world" was counting on the negotiations to finalise a deal.
The conflict has pushed up grain prices and Europe is suffering from rocketing energy bills stemming from sanctions on Russia and Moscow's move to limit gas flows to Europe.
US Treasury Secretary Janet Yellen said on Thursday that Russia's war in Ukraine posed the "greatest challenge" to the global economy, as G20 ministers prepare to start talks in Indonesia.
The European Commission, meanwhile, slashed growth forecasts for the eurozone, saying the consequences from the war in Ukraine were continuing to destabilise the economy because of record high inflation.
After concerns about arms being smuggled out of Ukraine to equip crime gangs in Europe, Ukraine's presidency called on legislators to form a monitoring committee that would oversee weapons received from western allies.
The head of the Ukrainian presidency, Andriy Yermak, said on Thursday that all arms supplied by the West were "registered and sent to the front", but such a committee would make the process "as transparent as possible".