Syrian government troops backed by tanks battled to recapture a strategic Damascus suburb from rebels who have advanced within striking distance of the centre of Syria's capital.

Five people, including a child, died from army rocket fire that hit the Daraya suburb during the fighting, opposition activists said.

Daraya is part of a semi-circle of Sunni Muslim suburbs south of the capital that have been at the forefront of the 21-month-old revolt against President Bashar al-Assad.

Clashes were also reported near the airport in Aleppo, Syria's largest city, which is in the north.

Insurgents have made that airport a target in the hope of limiting government access to Aleppo, which is largely under rebel control.

Rebels have taken much of the north and east of Syria over the past six months.

However, government forces still hold most of the densely populated southwest around the capital, the main north-south highway and the Mediterranean coast.

Government forces scored a victory on Saturday, pushing rebels out of Deir Baalbeh, a district in Homs, an important central city that straddles the highway linking Damascus with the north and the Mediterranean.

Some opposition activists have said scores or even hundreds of people were executed in Deir Baalbeh by troops that seized it after several days of fighting.

However, reports of killings there on a large scale could not be verified.

More than 45,000 people are estimated to have been killed in the 21-month war.

The opposition refuses to hold peace talks unless Assad relinquishes power, and military successes over the last six months have reinforced its belief it can drive him out by force.

However, government troops still heavily outgun the fighters and maintain air bases scattered across the country.