President Volodymyr Zelenskiy on Saturday denounced the strikes on Odesa as blatant "barbarism" that showed Moscow could not be trusted to implement Friday's deal, mediated by Turkey and the United Nations.
However, a government minister said preparations to resume grain shipments were ongoing, and public broadcaster Suspilne quoted the Ukrainian military as saying the missiles had not significantly damaged the port.
The deal signed by Moscow and Kyiv was hailed as a diplomatic breakthrough that would help curb soaring global food prices, but as the war entered its sixth month on Sunday there was no sign of a let-up in the fighting.
While the main theatre of combat has been the eastern region of Donbas, Zelenskiy said in video posted late on Saturday that Ukrainian forces were moving "step by step" into the occupied eastern Black Sea region of Kherson.
The strikes on Odesa drew strong condemnation from the United Nations, the European Union, the United States, Britain, Germany and Italy. On Friday, UN officials had said they hoped the agreement would be operational in a few weeks.
Video released by the Ukrainian military showed firefighters battling a blaze on an unidentified boat moored alongside a tug boat. Reuters was unable to independently verify the authenticity of the video or the date it was filmed.
Turkey's defence minister said Russian officials told Ankara that Moscow had "nothing to do" with the strikes. Neither Russian defence ministry statements nor the military's evening summary mentioned missile strikes in Odesa. The ministry did not reply to a Reuters request for comment.
Two Russian Kalibr missiles hit the area of a pumping station at the port, two others were shot down by air defence forces, according to Ukraine's military. Ukrainian air force spokesperson Yuriy Ignat said the missiles were fired from warships in the Black Sea near Crimea.
Suspilne quoted Ukraine's southern military command as saying the port's grain storage area was not hit.
"Unfortunately there are wounded. The port's infrastructure was damaged," said Odesa region governor Maksym Marchenko.
But Infrastructure Minister Oleksandr Kubrakov said on Facebook that "we continue technical preparations for the launch of exports of agricultural products from our ports".
The deal would restore grain shipments from the three reopened ports to pre-war levels of five million tonnes a month, UN officials said.
The strikes appeared to violate Friday's deal, which would allow safe passage in and out of Ukrainian ports.
Zelenskiy vowed to do everything possible to acquire air defence systems able to shoot down missiles like those that hit Odesa.
Moscow denies responsibility for the food crisis, blaming Western sanctions for slowing its food and fertiliser exports and Ukraine for mining the approaches to its ports.
US Secretary of State Antony Blinken said in a statement that the attack on Odesa "casts serious doubt on the credibility of Russia's commitment to yesterday's deal."
"Russia bears responsibility for deepening the global food crisis and must stop its aggression," he added.
UN Secretary-General Antonio Guterres "unequivocally condemned" the strikes, a spokesperson said, adding full implementation of the deal was imperative.
Turkish Defence Minister Hulusai Akar said in a statement: "The Russians told us that they had absolutely nothing to do with this attack ... The fact that such an incident took place right after the agreement we made yesterday really worried us."
Ukraine has mined waters near its ports as part of its war defences, but under the deal pilots will guide ships along safe channels.
Putin calls the war a "special military operation" aimed at demilitarising Ukraine and rooting out dangerous nationalists. Kyiv and the West call this a baseless pretext for an aggressive land grab.