Hundreds of rebels now control most of Deir Attiyeh, with the exception of the Bassel hospital and a small hill, the Syrian Observatory for Human Rights said.
The majority Christian town north of Damascus is home to 10,000 people and is situated on the strategic route linking the capital to Homs in central Syria.
It was seized by the jihadist Islamic State of Iraq and the Levant (ISIL) and Al-Nusra Front, as well as other Islamist fighters, said the Observatory, which relies on a network of activists, doctors and lawyers on the ground for its reports.
The opposition National Coalition welcomed the capture of Deir Attiyeh.
“After fierce fighting lasting several days, the (mainstream rebel) Free Syrian Army in Damascus province has successfully liberated the town of Deir Attiyeh in the Qalamoun area,” the Coalition said in a statement.
“It is a success that exposes the lies of the regime (of President Bashar al-Assad) about fictitious victories,” the opposition added.
The rebel advance comes three days after the army took Qara, which for many months had been under opposition control.
A Syrian security source told AFP “the terrorists that were expelled from Qara have found refuge in… buildings on the edges of Deir Attiyeh and the army is currently handling the problem.”
His army, backed by Shiite fighters from Lebanon’s Hezbollah, has fought rebels all week in several areas of Qalamoun, which is strategic because it is near the Lebanese border.
Regime warplanes on Friday staged 16 air strikes on Qalamoun, the Observatory said.