Tre robotar slog ned i en eller två kontorsbyggnader i Vinnytsia och flera närliggande bostadshus tog skada. Staden ligger drygt 25 mil sydväst om huvudstaden Kiev, mitt i landet.
Raketerna avfyrades från en rysk ubåt i Svarta havet, enligt presidentens stabschef Kyrylo Tymosjenko i Kiev. Han säger att minst tre barn har dödats.
En större brand tog vid efter raketernas nedslag och omkring 50 bilar fattade eld. Flera personer har rapporterats saknade utöver dem som är bekräftade döda, enligt de lokala ukrainska myndigheterna.
Lugn del av landet
Centrala Ukraina har de senaste månaderna setts som en relativt säker plats jämfört med östra Donbass, där hårda strider har utkämpats mellan Ryssland och Ukraina.
Vinnytsia har under normala omständigheter omkring 370 000 invånare i själva staden och ytterligare några hundra tusen bor i storstadsområdet. Många ukrainare som har flytt östra Ukraina för att söka skydd västerut har bosatt sig i Vinnytsia.
FN:s generalsekreterare Antonio Guterres säger att han är "chockerad" över attacken och EU kallar den för "vedervärdig". Båda kräver att skyldiga ställs till svars.
Ytterligare döda
Ytterligare fem civila dödsfall efter rysk beskjutning har rapporterats från ukrainskt håll under det senaste dygnet.
Områden i Donbass som står under ukrainsk kontroll beskjuts ännu hårt från den ryska sidan. Ukrainas guvernör i regionen Luhansk har uppmanat alla civila att ta sig därifrån så snart som möjligt, då striderna tilltar och det snart kommer att råda brist på rent vatten, el och gas.
"Varje dag beskjuter Ryssland den civila befolkningen, dödar ukrainska barn, riktar robotar mot civila objekt. Där det inte finns några militära mål. Vad är det om inte en öppen terrorhandling?", skriver Ukrainas president Volodymyr Zelenskyj på meddelandetjänsten Telegram.
Han beskriver Ryssland som "ett mördarland, ett terroristland".
Storbritanniens försvarsdepartement gör gällande att Ryssland dock inte har gjort några stora framryckningar i öst, vid sidan av beskjutningen.