Chernihiv, 150 kilometres (90 miles) north of Kyiv towards Belarus, has been largely spared from major attacks since the first months of Russia's invasion as fierce fighting rages in the east and south.
The Russian army marched through the city when it invaded Ukraine through Belarus in February 2022, before being repelled by Kyiv's forces.
The strike came after Putin held talks with top Russian generals in a rare trip to operational hub Rostov-on-Don and as his Ukrainian nemesis, Volodymyr Zelensky, visited Sweden for talks with Prime Minister Ulf Kristersson.
"The number of dead has increased to 7. Ninety wounded people sought medical help" with 25 in hospital, Ukrainian Interior Minister Igor Klymenko said on Telegram of the Chernihiv attack.
Viacheslav Chaus, head of the Chernihiv region's military administration, said on Telegram that a child was among the dead.
Zelensky said the attack hit "the centre of the city" in a square that houses a "polytechnic university, a theatre".
"An ordinary Saturday, which Russia turned into a day of pain and loss," he said after his arrival in Sweden.
He posted a video from the scene showing debris around a large Soviet-era building, with parked cars partially destroyed, smashed roofs and windows blown out.
AFP reporters saw fire trucks outside the Taras Shevchenko Drama Theatre and Music Academy, which suffered some damage.
Some nearby buildings also sustained minor damaged.
- Putin meets military top brass -
"There was smoke, screams, people were running, crying, moaning. We ran to the shelter when everything happened and sat there," Iryna, a 24-year-old bartender in Chernihiv, told AFP.
"I'm still a little in shock, because this hasn't happened in a long time, everyone has relaxed a little. But now we will probably be going down to the shelter."
Until the war is over, "we have no options. Either accept or go abroad," added Viktoriya, 40, who manages a coffee shop.
Hours earlier, the Kremlin said Putin had travelled to the southern Russian city of Rostov-on-Don, Moscow's hub for its operations in Ukraine, to meet his top generals in a rare trip close to combat zones.
Moscow gave no details of when the meeting took place, but footage released by state media indicated it was at night.
Putin "listened to briefings by the Chief of the General Staff of the Russian Armed Forces Valery Gerasimov, commanders of directions and other senior officers of the group", the Kremlin said.
A video published by the RIA Novosti news agency showed Putin, wearing a suit, stepping out of a jeep in the dark and being greeted with a handshake by Gerasimov, in military attire.
Gerasimov is seen leading Putin down a corridor decorated with portraits of Russian military men and of the president chairing a meeting with army chiefs.
Rostov-on-Don was also the scene of a dramatic armed mutiny by Wagner mercenaries in June, which saw them briefly take over the army HQ in Rostov, before halting their rebellion.
Gerasimov, who Wagner wanted to unseat, has rarely been seen in public since.
- Drone attacks -
As Putin met with his generals, Kyiv said it had shot down more than a dozen Russian drones in an overnight attack.
And the Russian army said it had thwarted Ukrainian attacks on Crimea as well as attempted drone strikes on a military airfield in the northwestern Novgorod region, Moscow and its region.
A day earlier, Russian forces destroyed Ukrainian drones targeting Moscow and the Black Sea Fleet.
Both sides have reported regular drone incursions as Ukraine presses a counteroffensive to reclaim Russian-held territory.
On the battlefield, Russia's army said it had "eliminated" 150 Ukrainian troops that tried to cross the Dnipro River into Russian-occupied territory in southern Ukraine, a day after admitting sabotage groups were operating in the area.