Turkey has said a Syrian government air strike on a Turkish military convoy in northwest Syria has killed three civilians and wounded 12, as Syrian troops advanced on rebels in a key town.

The air strikes hit near the convoy that was approaching frontlines in Idlib province, two Turkey-backed rebel sources and a war monitor said.

Turkey, which backs some of the rebel factions in the northwest, has forces stationed in Idlib under deals with Russia, Syrian President Bashar al-Assad's most powerful ally.

Syrian state media said the despatch of the convoy into Syria was an act of aggression and it had entered to help insurgents fighting an army advance around Khan Sheikhoun, a rebel-held town that was bombed with sarin gas in 2017.

The advance on the town, in rebel hands since 2014, threatens to encircle insurgents in their only patch of territory in nearby Hama province and could put a Turkish observation post there at risk.

A series of truces brokered via Russian-Turkish talks have failed to end the fighting in Idlib, where Turkey has a dozen military positions.

The northwest is the last big stronghold of the opposition to Mr Assad, whose military has been waging an offensive there since the end of April with Russian help.

The escalation has killed at least 500 civilians and uprooted hundreds of thousands, many stranded near the Turkish border, the United Nations says.

Read more:
US welcomes truce in Syria's Idlib region after months of bombardments
Syria accused of war crimes in Amnesty report

Turkey, which hosts some 3.6 million Syrian refugees and warns it cannot accept more, fears the onslaught in Idlib could cause a new influx.

Turkey's Defence Ministry said the military convoy was attacked en route to one of its observation posts in the northwest.

It said the attack violated Ankara's agreements with Moscow, which had been informed in advance about the convoy.

The Syrian Observatory for Human Rights, a British-based monitoring group, said the convoy was stuck on a highway after air strikes prevented it from continuing southwards.

It said a fighter accompanying the convoy was killed.

The 2017 sarin attack on Khan Sheikhoun killed dozens of people 

Colonel Mustafa Bakour of the Jaish al-Izza rebel faction said battles raged on the outskirts of the town.

Fighters arrived to reinforce the frontline, he said, including some from the National Army, a Turkey-backed rebel force based further north near the border.

France called on Friday for an immediate end to the fighting and condemned air strikes on camps for the displaced.

The sarin attack on Khan Sheikhoun killed dozens of people and prompted a US missile strike.

The town is located along a highway stretching from the capital Damascus to Aleppo city.

Read more:
French intelligence says Assad behind chemical attack
Death toll in suspected Syria chemical attack rises to 72

Opposition sources believe a primary goal of the government offensive is to reopen the road.

An investigation by the United Nations and the Organisation for the Prohibition of Chemical Weapons blamed the sarin attack on the Syrian government. Damascus denies using such weapons.

Pro-government forces were fighting to march into Khan Sheikhoun today, as heavy air strikes hit positions and towns in the south of Idlib, the Observatory said.

The army has closed in on the town from the east and west since a brief ceasefire collapsed earlier this month.

Residents said warplanes pounded the town and nearby villages during the night.