Syrian government forces look set to recover a strategic town that has been in rebel hands since 2014 in a major Russian-backed offensive into the opposition's last major stronghold.

An organization that monitors the war and a pro-Damascus military source said insurgents had withdrawn from Khan Sheikhoun overnight, though the main insurgent group in the area said rebels still held part of the town and fighting continued.

Capturing Khan Sheikhoun would be an important gain for President Bashar Assad into the northwestern region where his bid to recover "every inch" of Syria has run into complications including Turkish forces on the ground.