Forces have captured about 85 percent of the city’s rebel-held east with people trapped in increasingly grim conditions.

Syrian warplanes launched heavy raids on the last rebel-held districts in Aleppo as key regime ally Russia vowed the assault would continue until opposition fighters left the battleground city.

Syria’s army is three weeks into a battle to retake east Aleppo from rebels, who are now confined to just a few neighbourhoods in their former bastion.

Its forces have captured about 85 percent of the city’s east, with rebels and remaining civilians trapped in a shrinking space in increasingly grim conditions.

“The advance is going according to plan and is sometimes faster than expected,” a Syrian military source told Reuters news agency.

Aleppo’s loss would be the biggest blow for the rebels in the nearly six-year-old war, which has killed more than 400,000 people and displaced half the country’s population.

Tens of thousands of civilians have fled east Aleppo in recent weeks, though the United Nations said Friday it had received reports that rebels had blocked some residents from leaving.

It also expressed concern about reports that hundreds of men had gone missing after fleeing to government-held territory.

The Syrian Observatory for Human Rights, a Britain-based monitor, reported at least a dozen air strikes on rebel-held neighbourhoods on Friday and artillery fire continued.

Bodies in the streets

An AFP news agency correspondent in east Aleppo said it had become increasingly difficult to find food because shopkeepers were too afraid to open and sell their meagre wares under the heavy government fire.

He said fleeing civilians had seen bodies lying uncollected in the streets of one neighbourhood because the intensity of the bombardment made it too dangerous to retrieve the dead.

The rubble and shrapnel on the streets around the Old City’s Bab al-Hadeed district revealed the ferocity of the battle this week that gave Syria’s army control of the historic area.

The booms from air strikes, the smell of gunpowder, and the sight of rising smoke from nearby districts testified to the ongoing violence on Friday as the army and allied militias pressed their assault.

READ MORE: Hundreds of men from east Aleppo ‘go missing’

The commander of a volunteer group in the Tiger Force, a Syrian special army unit, said his troops had suffered heavy losses in the narrow lanes around Bab al-Hadeed, near the towering Aleppo Citadel.

“The militants had sophisticated weapons, especially sniper rifles, and they were professionals,” said the commander who gave his name only as Ismail. “Their resistance was very fierce. We had a lot of [deaths].”

Standing in front of a cracked building with burn marks, he added: “They were attacking us, killing us, and then running away … This area took us two days to liberate completely.”

Behind buildings in one street, wood from traditional ornate windows clogged an alleyway. Political slogans and the names of armed opposition groups were scrawled on the side of a bakery.

A graffiti warning said: “beware snipers” and gave instructions on dodging bombardment. “We will not fall. Down with Assad,” was another slogan.

Maher Tashtash, age nine, said the bombardment had been frightening and rebels had told them they faced death if caught by the army. His brother Mohammed, 12, said they had hidden in the basement of the building until the fighting passed.

Ismail, the Tiger Force commander, said he was confident of a swift victory for Assad’s forces.

“I think the operation needs a week, at most, to be concluded,” he said.

READ MORE: What went wrong in east Aleppo?

Diplomatic efforts to reach a ceasefire have floundered, despite repeated discussions between Washington and Moscow, which back opposing sides in the conflict.

Russia’s foreign minister, Sergei Lavrov said Friday he hoped a truce deal could be reached soon, and Russian and US officials are to meet Saturday in Geneva.

But Lavrov added that military operations in the city would continue so long as rebels remained in Aleppo.

“After a humanitarian pause, [the strikes] have resumed and will continue for as long as the bandits are still in Aleppo,” he told journalists in Germany.

Rebels earlier this week called for a ceasefire and the safe passage of civilians to opposition-held territory elsewhere in Aleppo province.

But Syria’s government and Moscow have rejected the possibility of opposition fighters remaining in the city, and Lavrov said the plan being discussed envisions disarmed rebels leaving with civilians.

Tens of thousands of civilians have already left Aleppo’s east for the regime-held west or districts controlled by Kurdish forces.

The UN estimates about 100,000 people are now squeezed into an ever shrinking rebel-held pocket of Aleppo with virtually no access to food, water or medical care.

Disappearances reported

On Friday, the UN said it had received reports that some armed groups were preventing residents from leaving, and government forces had arrested some of those who fled to regime territory.

“While it’s very difficult to establish the facts in such a fluid and dangerous situation, we have received very worrying allegations that hundreds of men have gone missing after crossing into government-controlled areas,” UN rights office spokesman Rupert Colville told reporters in Geneva.

Armed groups, including al-Qaeda’s former affiliate Jabhat Fateh al-Sham, reportedly “abducted and killed an unknown number of civilians who requested the armed groups to leave their neighbourhoods”, he said.

At least 409 civilians, including 45 children have been killed in the government’s assault, according to the Syrian Observatory.

The war monitor with sources on the ground said another 113 people, including 35 children, have been killed by rebel fire on western Aleppo in the same period.

The UN General Assembly voted on Friday in favour of a non-binding resolution demanding an immediate ceasefire in Syria and humanitarian aid access. But the document was not expected to have much effect, with Britain’s ambassador describing it as “too little, too late”.