Syrian government forces massed on Saturday in northwest Syria in an apparent bid to press an offensive against militants and allied rebels that has heightened tensions with neighbouring Turkey.

The Syrian military has since Wednesday seized the key town of Khan Sheikhoun in Idlib province from militants and allied rebels and overrun the countryside to the south.

A new push by Syrian government and Russian forces to take the area has seen heavy strikes and advances this week in the south of Idlib province and nearby Hama, prompting a new civilian exodus, Reuters reported. Hundreds of people have been killed in the campaign since late April, the United Nations says.

In Khan Sheikhoun, smoke still curled into the sky from multiple locations on Saturday among buildings partially or fully destroyed by earlier fighting.

2- More than 850,000 civilians have been displaced by Russia and regime forces during its recent military campaign against #Idlib and #Hama, after their homes and city infrastructure were completely and deliberately destroyed. pic.twitter.com/dqqfNO47xE

The town was almost deserted by civilians, according to an AFP team on a visit organised by the Syrian army.

The battle in northern Hama, where the army has retaken several other areas, "lasted no more than a few hours, due to the significant firepower that preceded the ground operation," an army officer told AFP, asking not to be identified.

Loyalist fighters gathered north of Khan Sheikhoun on Saturday, the Syrian Observatory for Human Rights said.

"The day after they controlled the area south of Khan Sheikhoun, regime forces began massing in the area north of it," Rami Abdel Rahman, head of the Britain-based monitoring group, told AFP.

Idlib city itself has largely been spared air strikes since a major bombing campaign on the territory began in late April, but on Saturday its outskirts were hit from the air, the Observatory and opposition media said, according to Reuters.

Heavy strikes continued to hit the south of Idlib province, including around Maarat al-Numan, a city that has been a sanctuary for families fleeing former rebel areas around the country. This week tens of thousands fled to Syria's border with Turkey as the fighting advanced.

Turkish President Recep Tayyip Erdogan is to visit Moscow on Tuesday for talks with his Russian counterpart, Vladimir Putin. They and their Iranian counterpart, Hassan Rouhani - whose country supports Assad - are also to convene in Ankara on 16 September.

An AFP correspondent saw thick grey smoke billow up into a clear blue sky after a strike on the outskirts of Maaret al-Numan.

After Khan Sheikhoun, Maaret al-Numan is the next town on a key highway running across Idlib province that analysts say is coveted by Damascus.

Full government control of that road would allow it to fully connect the capital with second city Aleppo, retaken from opposition fighters in late 2016.

Also on Saturday, a car bomb in Idlib city killed two people, the Observatory said, but there was no immediate claim of responsibility.

Russian and Syrian government bombardment since late April has killed about 900 civilians, the Observatory says.

A further 400,000 have been forced to flee their homes, according to the United Nations.

Syria's war has killed more than 370,000 people since starting with the brutal repression of anti-government protests in 2011.