Dozens of Syrian soldiers have been killed by armed fighters during a major attack on government forces in Idlib, though the account has been disputed by a rebel official.

Russia's defence ministry said the attack killed up to 40 soldiers, the Reuters News Agency quoting Syria's state media reported on Thursday.

More:

Moscow said the fighters seized two Idlib settlements in one of the offensives, which began on Wednesday, forcing the Syrian army troops to abandon some of their positions in the de-escalation zone.

Idlib is the last rebel-held swath of territory in the country and hundreds of thousands of people in the area have fled in recent weeks amid heavy air raids by Russian and Syrian forces.

The Syrian state media made no mention of army casualties, but said an attack that included car bombs and heavy gunfire forced some of its forces to re-deploy.

A spokesman for the National Liberation Front coalition of rebel groups, Naji al-Mustafa, disputed the Syrian media and Russian government accounts, claiming no such attack had taken place.

Mustafa said the attacks had only been carried out against the government forces earlier in the week as a response to stepped-up attacks against them in Idlib.

Russia, which is helping Syria's President Bashar al-Assad's forces, said Syrian government forces had killed up to 50 fighters and wounded up to 90.

Moscow said the attackers were from different groups, including the Islamic Party of Turkestan and Tahrir al-Sham, the latest incarnation of the former al-Nusra Front that was part of al-Qaeda until 2016.

The fighters were equipped with pick-up trucks, armoured personnel carriers, tanks and heavy machine guns, it said.

Last week, at least 21 people were killed in Idlib province as government forces and their Russian allies intensified an air offensive on the country's northwest.

The violence in northern Syria is escalating an already dire humanitarian situation, with aid groups warning of displacement on an unprecedented scale.

Since December 1, about 350,000 people, mostly women and children, have been displaced by the renewed offensive, according to the United Nations.

The short-lived ceasefire follows a previous truce announced in late August after attacks by the government killed more than 1,000 civilians in four months, according to the UN.

The International Rescue Committee has warned another 650,000 people, mostly children and women, could be forced from their homes if the violence continues.