State television confirmed the news, reporting: "Syrian army units have advanced in the Yabrud area and now control its eastern approaches and northeastern boundary."
The broadcaster said the army progress had caused a "breakdown in the ranks of terrorist groups".
Syrian troops "drove the militants off the hill of Aqaba" outside the town, said the Observatory, quoting military sources.
"This is the closest point ever reached by the army" to Yabrud, Observatory chief Rami Abdel Rahman told AFP.
"Fierce fighting is also taking place on the northern edge, between the town of Sahel and Yabrud," he added.
"They want to completely encircle the Yabrud militants to dislodge them."
The Al-Qaeda-linked militant group of Al-Nusra Front admitted "one position at Aqaba has fallen... causing fighters to fall back to rear bases".
An activist in the region confirmed to AFP the army had taken a position at Aqaba some five kilometers (three miles) from Yabrud.
The battle for the town is vital for army. The army wants to sever a key supply line to the militants held town of Arsal across the border in eastern Lebanon.
In a separate incident, the Syrian army killed 20 militants in an ambush in Tel Kalakh, a village 40 km (25 miles) west of Homs, a military source told Reuters. Lebanon's Al Manar television channel also reported the incident.
The source said the attack happened near a customs checkpoint close to the border with Lebanon, about 4 km (2.5 miles) from the village.
NJF/NJF