KYIV, Ukraine—Russia said Thursday it had taken control of Mariupol, presenting it as one of its first victories in the conflict after weeks of setbacks, though Ukrainian forces were still blockaded inside a vast steel plant in the city and said they were continuing to launch attacks on Russian positions.

Defense Minister Sergei Shoigu said in a meeting at the Kremlin with President Vladimir Putin that Russian troops were in control of the strategic port city and that the Azovstal plant in the south where Ukrainian forces were holed up had been blocked off.

A spokesman for Ukrainian President Volodymyr Zelensky said that almost all of Mariupol was under Russian control, but a fight for the plant continued.

As Washington and its allies race to resupply outgunned Ukrainian troops, President Biden said Thursday that the U.S. would send a further $800 million in military assistance, including heavy artillery, and $500 million in economic aid to Kyiv.

“This package contains very powerful defense tools for our military. In particular, it is artillery, shells, drones. This is what we expected,’’ Mr. Zelensky said in his nightly video address, adding that more weapons are needed.

Mr. Biden also said that the U.S. would ban Russian-affiliated ships from its ports and launch a new refugee-sponsorship program to take in as many as 100,000 Ukrainians who fled their country after Russia’s invasion.

Russia has tightened its grip on Mariupol since the first weeks of the invasion, pushing out pockets of resistance in residential areas. In recent weeks, it has focused on the remaining Ukrainian troops still fighting from the steel plant. There were conflicting reports around how many Ukrainian troops remained at the plant, with Russia saying some 2,000 were there.

In a nod to the heavy losses Russian armed forces sustained in the first weeks of the conflict, Mr. Putin dismissed a suggestion by Mr. Shoigu to storm the plant, saying it would unnecessarily endanger the lives of Russian soldiers.

“This is one of those times when we should think…about safeguarding the life and health of our soldiers and officers,” he said. “Block this industrial zone so that not even a fly can enter.”

Mr. Putin appealed to Ukrainian soldiers at the plant to lay down their weapons and said they would be dealt with according to international law.

Smoke rises above the Mariupol steel plant where Ukrainian troops were holding out.

Photo: ALEXANDER ERMOCHENKO/REUTERS

A damaged residential building in Mariupol.

Photo: Gabriele Micalizzi/CESURA

While Russian troops won’t be storming the plant, an operation that could take three to four days, Mr. Shoigu said, they will still likely be engaging with Ukrainian troops who continue to fire on Russian positions.

Ukraine’s Azov regiment said Thursday that “despite the extremely difficult situation,” it had managed to destroy three Russian tanks and two armored personnel carriers in the past two days.

On Wednesday, Major Serhiy Volyna, commander of the 36th Marine Brigade defending the steel plant, said in a video recording that time was running out for his troops and they had only hours or days left to live.

“The enemy forces exceed ours 10-fold,” he said, dressed in fatigues and a head cover, his beard long and scraggly. “They dominate the skies, have the upper hand in artillery, in terms of groups operating on land, as well as in military equipment and tanks.”

An effective blockade of the steel plant would free up Russian troops that have been fighting there for weeks, giving Moscow latitude to focus on taking other parts of southern Ukraine, where its troops have made the most territorial gains. A capture of the city would also secure a land bridge between Russian-controlled areas and Crimea, which Moscow annexed from Ukraine in 2014.

On Thursday, Ukrainian Deputy Prime Minister Iryna Vereshchuk called on Russia to allow a humanitarian corridor from the steel plant for troops and civilians who are sheltered there.

“They all need to be pulled out of Azovstal today!,” she said in a Facebook post.

Elsewhere in Ukraine, the Russian Defense Ministry said it had hit more than 1,000 military objects across the country overnight, including 58 command posts and 162 artillery positions.

Weeks after Russian troops pulled out of the areas around Kyiv, following a disastrous assault on the capital, Mr. Zelensky said authorities were working to restore order but warned that the situation still remained dire as Moscow was expected to make a more concerted push for land in the country’s east.

A mass grave site on the northwestern edge of Manhush, Ukraine, roughly 12 miles west of Mariupol.

Photo: Maxar Technologies/Agence France-Presse/Getty Images

A woman from Mariupol arrived Thursday at a refugee center in Zaporizhzhia, Ukraine, as residents fled the Russian attack.

Photo: Leo Correa/Associated Press

“The situation in the east and south of our country remains as severe as possible,” Mr. Zelensky said in an address late Wednesday. “The occupiers do not give up trying to gain at least some victory for themselves through a new large-scale offensive.”

Russia’s deputy envoy to the United Nations, Dmitry Polyansky, dismissed a cease-fire plan put forward by U.N. Secretary-General António Guterres, saying it looked like an attempt to give Ukrainian forces a chance to rearm and regroup.

“I won’t hide the fact that the calls to a truce and cease-fire sound very duplicitous and low,” said Mr. Polyansky, speaking at the U.N.

The roughly $800 million in additional U.S. military aid announced by Mr. Biden on Thursday will include 72 155mm howitzers, 144,000 artillery rounds and dozens of tactical drones, the Pentagon said.

An aid package from the U.S. on April 13 also included heavy artillery: 18 howitzer guns. The two batches of aid announced over the past week will provide Ukraine with enough artillery systems to equip five battalions, the Pentagon said.

“Now we have to accelerate that assistance package to help prepare Ukraine for Russia’s offensive that’s going to be more limited in terms of geography, but not in terms of brutality,” Mr. Biden said.

The U.S. has sent roughly $3.4 billion in security assistance to Ukraine since the start of Russia’s invasion.

In addition to the military aid, the U.S. will send an additional $500 million in economic assistance for Ukraine, the president said. Treasury Secretary Janet Yellen told top Ukrainian officials that the funding was to help the country pay general government expenses, according to a Treasury official.

Mr. Biden said the administration would soon ask Congress to authorize more funding for Ukraine, but didn’t say how much the administration would request.

Enforcement of the Russian ship ban announced by Mr. Biden could be difficult, because ships change flags and registries easily. Cargo volumes moved by Russian ships to the U.S. are less than 1% of total incoming cargo, according to Gene Seroka, executive director at the Port of Los Angeles.

The new refugee-sponsorship program, which is expected to be launched on Monday, would become the main path the Biden administration hopes to use to fulfill its promise of taking in 100,000 Ukrainian refugees.

Under the program, U.S. citizens and groups would be required to attest to their financial ability to sponsor Ukrainian refugees. If they are approved, Ukrainians would then be allowed into the country on temporary humanitarian grounds.

The Ukrainian general staff said Russian forces were continuing to block and shell the northern city of Kharkiv, which lies near the Russian border. Russian forces together with their proxies from eastern Ukraine had pushed westward to the edge of Kharkiv province, Russian state news agency RIA reported.

Firefighters battle a warehouse fire after a Russian bombardment in Kharkiv, Ukraine.

Photo: Felipe Dana/Associated Press

Vehicles destroyed in combat, at a junkyard in Bucha, Ukraine.

Photo: oleg petrasyuk/epa/Shutterstock

The general staff also said that Russian troops were forcing Ukrainian men in the occupied province of Kherson to mobilize on the side of the Russians and had stopped Ukrainian humanitarian aid from reaching the region.

Kremlin spokesman Dmitry Peskov said Thursday that Russia was waiting for Kyiv’s response to a draft document listing terms for a peace deal that Moscow said it handed to Ukraine on Wednesday.

Mr. Zelensky told reporters after meeting with European Council President Charles Michel on Wednesday that he hadn’t received the Russian proposal.

The stream of dollars and euros that Russia earns from its energy sales to Europe has helped mitigate damage to Russia’s economy from sanctions the U.S. and its allies have imposed since the invasion.

Ms. Yellen on Thursday cautioned against a broad ban on European imports of Russian energy, however, so as not to cause further harm to the global economy. The U.S. and its allies should instead find a way to reduce Russia’s revenue from energy sales, she said at a news conference.

Russia on Thursday also banned several top U.S. officials, chief executives and journalists from entering the country, citing the expanding list of anti-Russian sanctions under the Biden administration.

Russia’s foreign ministry said its travel ban included Vice President Kamala Harris, Pentagon spokesman John Kirby, State Department spokesman Ned Price, Facebook founder Mark Zuckerberg and Bank of America Corp. Chief Executive Brian Moynihan. Moscow had already banned Mr. Biden.

Write to Thomas Grove at thomas.grove@wsj.com and Matthew Luxmoore at Matthew.Luxmoore@wsj.com