LVIV, Ukraine — Russian forces intensified their campaign of devastation aimed at cities and towns across Ukraine, attacking Kyiv and a strategic port on Saturday and detaining the defiant mayor of a captured city, an act that prompted hundreds of outraged Ukrainians to pour into the streets in protest.
President Volodymyr Zelensky of Ukraine accused Moscow of terrorizing the nation in an attempt to break the will of the people. “A war of annihilation,” he called it.
He denounced what he called the kidnapping of the mayor of Melitopol, who had refused to cooperate with Russian troops after they seized the southeastern city in the first days of the invasion, as “a new stage of terror, when they are trying to physically eliminate representatives of the legitimate local Ukrainian authorities.”
Russian forces have not achieved a major military victory since the first days of the invasion more than two weeks ago, and the assaults on Saturday reinforced Moscow’s strategic turn toward increasingly indiscriminate shelling of civilian targets.
Unable to mount a quick takeover of the country by air, land and sea, Russian troops have deployed missiles, rockets and bombs to destroy apartment buildings, schools, factories and hospitals, increasing civilian carnage and suffering, and leading more than 2.5 million people to flee the country.
In response to American efforts to supply the Ukrainian military with antitank weapons and other matériel, Russia issued a new and more direct threat on Saturday, warning the United States that convoys with weapons sent to Ukraine would be “legitimate targets” for the Russian military.
Russia’s deputy foreign minister, Sergei A. Ryabkov, said on Russian television that Moscow had warned Washington that the “thoughtless transfer of such types of weapons as portable antiaircraft and antitank missile systems” to Ukraine could lead to serious consequences.
The heavy shelling and lack of food, water and medicine for thousands of residents in the besieged city of Mariupol have already led to what Ukraine’s foreign minister, Dmytro Kuleba, called “the worst humanitarian catastrophe on the planet.”
At least 1,582 civilians have died since the Russian siege of Mariupol began 12 days ago, he said, and residents are struggling to survive and have been forced to bury the dead in mass graves.
“There is no drinking water and any medication for more than one week, maybe even 10 days,” a staff member who works for Doctors Without Borders in Mariupol said in an audio recording released by the organization on Saturday.
“We saw people who died because of lack of medication, and there are a lot of such people inside Mariupol,” the staff member said.
During a 90-minute call with President Vladimir V. Putin of Russia, Chancellor Olaf Scholz of Germany and President Emmanuel Macron of France urged Mr. Putin to accept an immediate cease-fire, according to the French government, which described the talks as “frank” and “difficult.”
France said that Mr. Putin showed no willingness to stop the war, and said he “placed the responsibility for the conflict on Ukraine” and sounded “determined to attain his objectives.”
In its summary of the call, the Kremlin said Mr. Putin had discussed “several matters relating to agreements being drafted to meet the well-known Russian demands,” but did not specify those demands.
In the coming weeks, NATO, which has vowed to defend allied countries from any incursion by Russian forces, plans to gather 30,000 troops from 25 countries in Europe and North America in Norway to conduct live-fire drills and other cold-weather military exercises.
The exercises, which Norway hosts biannually, were announced more than eight months ago, NATO said, and are not linked to Russia’s invasion of Ukraine, which NATO said it was responding to with “preventive, proportionate and non-escalatory measures.”
But the training has taken on greater significance as Russia steps up its bombardment of Ukrainian population centers.
Around Kyiv, the capital, Russian forces have advanced into the suburbs but have been slowed by Ukrainian troops that have counterattacked with ambushes on armored columns. On Saturday, artillery fire intensified around Kyiv, with a low rumble heard in most parts of the city.
By Saturday, there were no indications of further efforts by the Russian army to move armored columns closer to the capital. Instead, soldiers appeared to be fighting for control of the towns along the highways that encircle it.
In Irpin, a leafy bedroom community northwest of Kyiv, troops were fighting street by street, said Vitaly, a Ukrainian soldier who asked that his last name not be published for security reasons. He spoke outside a gas station minimart, its windows blown out by shelling, on the town’s western edge.
“We are trying to push them back but we don’t control the town,” he said.
In the southern city of Mykolaiv, residents awoke on Saturday morning to the sounds of a fierce battle hours after Russian shells hit several civilian areas, damaging a cancer hospital and sending residents fleeing into bomb shelters.
The early-morning fight was concentrated in the north of the city, said Col. Sviatoslav Stetsenko of the Ukrainian Army’s 59th Brigade, who was stationed near the front lines.
“They are changing their tactics,” Vitaliy Kim, the governor of the Mykolaiv region, said. “They are deploying in the villages and lodging in village schools and homes. We cannot shoot back. There are no rules now. We will have to be more brutal with them.”
For nearly two weeks, Russian forces have been trying to surround Mykolaiv and cross the Southern Buh River, which flows through the city and is a natural defense against a Russian push toward the west and Odessa, the Black Sea port that appears to be a prime Russian objective.
Russian forces had not crossed the river as of Saturday morning, Colonel Stetsenko said, but “they are continuing to shell Mykolaiv.”
In Melitopol, hundreds of residents demonstrated in the streets, one day after Russian troops forced a hood over the mayor’s head and dragged him from a government building, according to Ukrainian officials.
“Return the mayor!” the protesters shouted, according to witnesses and videos. “Free the mayor!”
But nearly as soon as the demonstrators gathered, Russian military personnel moved to shut them down, arresting a woman who they said had organized the protest, according to two witnesses and the woman’s Facebook account.
The episode was part of what Ukrainian officials said was an escalating pattern of intimidation and repression. It also illustrated a problem that Russia is likely to face even if it manages to pummel cities and towns into submission: In at least some of the few cities and towns that Russia has managed to seize — mostly in the south and east — they are facing popular unrest and revolt.
Mr. Zelensky sought to tap into public rage in an address to the nation overnight.
“The whole country saw that Melitopol did not surrender to the invaders,” he said. “Just as Kherson, Berdyansk and other cities where Russian troops managed to enter didn’t.” He said that popular resistance “will not be changed by putting pressure on mayors or kidnapping mayors.”
Melitopol’s mayor, Ivan Fyodorov, had remained stubbornly defiant even after Russian soldiers took over the city after a fierce assault on the first day of the invasion. “We are not cooperating with the Russians in any way,” he had said.
Last weekend, with Mr. Fyodorov’s encouragement, people waving Ukrainian flags took to the streets of Melitopol and other occupied cities. For the most part, Russian soldiers stood aside, even as protesters commandeered a Russian armored vehicle in one town and drove it through the streets.
While the protests in Melitopol were quickly put down, the Ukrainian government renewed efforts to bring aid to Mariupol, dispatching dozens of buses with food and medicine, Ukrainian officials said.
Similar relief efforts had failed in recent days as fighting raged around the city and land mines pocked roads in the area. In an overnight address, Mr. Zelensky said that the inability to bring aid to the city showed that Russian troops “continue to torture our people, our Mariupol residents.”
Still, he said, “We will try again.”
Marc Santora reported from Lviv, Ukraine, Michael Schwirtz from Mykolaiv, Ukraine, and Michael Levenson from New York. Reporting was contributed by Andrew E. Kramer in Kyiv, Ukraine, Ivan Nechepurenko in Istanbul and Norimitsu Onishi in Paris.