Syrian government forces killed 23 rebels near Idlib province on Friday, the deadliest clash to rock a buffer zone where a Russian-Turkish truce is to be enforced.

The attack on a position held by the Jaish al-Izza rebel group took place on the edge of the northwestern province of Idlib, in an area due to be de-militarised.

According to the Syrian Observatory for Human Rights, government forces moved in to take a high building held by the rebels in a rural area of neighbouring Hama province.

Idlib and some surrounding areas are the last major rebel bastion in Syria, where the Russian-backed government has in recent months retaken much of the territory it had lost since the civil war erupted in 2011.

It had threatened an assault on rebel territory, home to around three million people, but a deal for a de-militarised buffer zone around it was reached in September between Moscow and rebel backer Ankara.

Several deadly skirmishes have occurred since the deal but 23 is the highest number of known fatalities in a single incident inside the planned buffer zone, the Observatory said.