Syrian government troops have retaken parts of the strategic town Saraqeb in the last rebel-held province, Idlib.

Syrian army units besieged the town for two days, exchanging artillery fire with Turkish forces who were supporting Syrian rebels. It follows weeks of aerial bombardment by the Syrian air force and their Russian backers, combined with a ground offensive. The advance has forced hundreds of thousands of civilians to flee.

Saraqeb straddles the intersection of the major M4 and M5 motorways that link government-held cities including Damascus and Aleppo but run through rebel-controlled territory. Television footage shows troops and armoured vehicles in the devastated town, with corpses lying in the streets.

State media say army units have started clearing the town of mines. Another strategic town, Maarat al-Numan, fell to the government last week.

Since December Syrian soldiers, supported by Iran-backed militia and Russian air strikes, have captured dozens of towns and villages in the country’s north-west, which is the last stronghold of the opposition to Syrian President Bashar al-Assad.

More than half a million civilians, the vast majority women and children, have fled their homes since the government launched its offensive. The Turkish government, which backs the Syrian opposition and fears a massive influx of refugees, has called on Russia to bring an end to the advance.

The Turkish military has deployed troops to Idlib to monitor a 2017 de-escalation agreement brokered by Turkey and Russia that has been repeatedly violated. The agreement was designed to avert a Syrian government assault that the UN said could create the worst humanitarian catastrophe of the 21st Century.

Turkey is already hosting 3.6 million Syrian refugees and says it would not be able to handle a fresh influx of displaced people.