Syrian forces entered the key rebel bastion of Yabrud on Friday, one of the last opposition-held areas near the border with Lebanon, a military source told AFP.
"The Syrian army on Friday entered the town of Yabrud north of Damascus from the east, and advanced along the town's main street," the source said.
"The rebels are fleeing towards Rankus village" to the south. "If their flight continues, the capture of the city is only a matter of days."
Earlier, state television reported Syrian army units advancing in the Yabrud area, saying they "now control its eastern approaches and northeastern boundary".
The broadcaster said the assault had caused a "breakdown in the ranks of terrorist groups", the government term for rebels battling President Bashar al-Assad.
The Syrian Observatory for Human Rights said Lebanon's powerful Shiite group Hezbollah was spearheading the fight to dislodge insurgents from Yabrud.
The Britain-based monitor, which relies on civilian, medical and military sources for its information, said earlier Syrian forces "drove the rebels off the hill of Aqaba" outside the town.
"Fierce fighting is also taking place on the northern edge, between the town of Sahel and Yabrud," Observatory chief Rami Abdel Rahman told AFP.
"They want to completely encircle the Yabrud rebels to dislodge them."
The Al-Qaeda-linked jihadist group Al-Nusra Front admitted "one position at Aqaba has fallen... causing brother fighters to fall back to rear bases".
Signup to our newsletter and follow us on Facebook and Twitter!
But it denied rebels were retreating, insisting that reinforcements were on the way.
The battle for Yabrud is vital for Hezbollah, which first admitted its fighters were fighting alongside Assad's forces in spring 2013.
Hezbollah wants to sever a key rebel supply line to the Sunni town of Arsal across the border in eastern Lebanon.
It says car bombs that have been used to attack it inside Lebanon were loaded with explosives in Yabrud and then driven via Arsal to their targets.
On another front in the complex struggle pitting regime loyalists against mainstream rebels and rebels against jihadists of the Islamic State of Iraq and the Levant, ISIL on Friday withdrew its fighters from Idlib province in the northwest and Latakia in the west, the Observatory said.
"ISIL is no longer able to defend his fighters" in these areas because of clashes with other rebel factions, it said, adding the withdrawal began a week ago.
"Rebel brigades were about to engage them," it added.
Spurned because of its abuses of civilians and extreme interpretation of Islam, ISIL had already pulled out of several areas in the northern province of Aleppo since January.
It is now entrenched in Raqa province east of Aleppo.
The conflict between mainstream insurgents and jihadists has killed 4,000 people since January, says the Observatory, which estimates an overall death toll of more than 146,000 in three years of fighting in Syria.