Two Iskander missiles struck a military school building and a nearby healthcare facility, according to Kiev, as reported by AP and AFP.
"People were trapped under the rubble. Many were rescued," writes Ukraine's President Volodymyr Zelensky in his post published on social media.
Over 50 people have been killed and hundreds injured, according to Ukrainian authorities. A dozen are feared to be trapped under the rubble, and the death toll is expected to rise.
"Dust everywhere"
It is unclear whether the victims are civilians or military personnel. Normally, Ukraine only reports civilian casualties, but in this case, the distinction may be difficult to make – the area was reportedly full of cadets from the military school, as well as other people from the school and healthcare sector.
The window was blown out. There was dust everywhere, says Jevgenija Tjyrva, who lives in a nearby building that was damaged in the attack.
Ukraine's Defense Ministry calls it a barbaric Russian attack.
"The time interval between the alarm and the deadly missile strike was so short that they hit people just as they were trying to reach the shelters," the ministry writes.
Unverified images published by, among others, Ukraine's state media show extensive destruction on Tuesday morning in an area with several high-rise buildings, one of which has had a large part of its facade blown off.
Slow deliveries
Zelensky has ordered a full investigation into the circumstances. He believes that the bloodbath is a result of slow deliveries of promised military aid to Ukraine.
"Ukraine needs air defense and missiles now, not waiting in warehouses," he writes on Telegram. "Every day that passes with delays means, unfortunately, more lost lives."
Poltava has several hundred thousand inhabitants and is located about ten miles from the border with Russia, further inland than the more war-torn city of Kharkiv.
For Sweden's part, Poltava is known as the site of the largest battle during the Great Northern War, between Sweden and Russia in the summer of 1709.