In a statement, the State Emergency Service of Ukraine (DSNS) said 16 people were killed when one missile hit a nine-storey building in the village of Serhiyivka on Friday night, the BBC reported.
A separate strike on a holiday resort in the same village led to five fatalities, including the 12-year-old child.
According to the DSNS, 38 people, including six children, were also injured in the strikes, which Russia has again denied of firing.
Ukrainian officials claimed that three missiles were launched from Russian warplanes over the Black Sea, reports the BBC.
Odesa regional administration spokesman Serhiy Bratchuk said Soviet-era X-22 missiles were believed to have been used.
The city's mayor, Gennadiy Trukhanov, told the BBC that there were no military installations or radar stations near Serhiyivka, despite the Russian Defence Ministry insisting there were.
He added that the people of Odesa are now "living their lives in fear" of further Russian attacks.
In response to the strikes, Andriy Yermak, President Volodymyr Zelensky's chief of staff, accused Russia of being a "terrorist country".
"In response to defeats on the battlefields, they (Russians) are waging a war on civilians," he said.