Syrian troops backed by Lebanon's Hezbollah on Sunday entered Qusayr, a strategic rebel stronghold linking Damascus to the coast, a day after President Bashar al-Assad insisted he would not quit.
The advance came as Assad's opponents warned his regime's "barbaric and destructive" assault on Qusayr could torpedo US-Russian attempts to organise a conference on ending more than two years of bloodshed.
The Arab League called an emergency meeting for Thursday, ahead of the conference, as the opposition Syrian National Council (SNC) demanded that it meet and "stop the massacre in Qusayr".
Forces loyal to Assad launched Sunday's Qusayr offensive with a heavy early morning bombardment by artillery and warplanes.
"We struck from several fronts -- south, east and northeast," a soldier told state television from Qusayr.
He spoke of violent fighting and said the army quickly seized the southern part of town, the town hall and nearby buildings, and advanced on the outskirts of the western sector of Qusayr.
"The armed men fled towards the northern sector but we are also advancing on that area to eradicate all armed presence," the soldier said.
He claimed that "100 armed men were killed" in the operation during which troops had to defuse mines and bombs placed by rebels at the gates of Qusayr.
A military source told AFP that government forces were in control of the town centre and that the Syrian flag was now flying over the recaptured municipality building.
The Syrian Observatory for Human Rights watchdog said Qusayr was struck from the air and pounded with artillery fire before the ground operation began.
Observatory chief Rami Abdel Rahman told AFP troops entered from the south and that Hezbollah militants from Lebanon were "playing a central role".
"If the army manages to take control of Qusayr, the whole province of Homs will fall," he said.
The Observatory said the army carried out additional air strikes on Sunday afternoon, and that at least 40 people were killed during the day, among them 21 rebels.
The regime has made recapturing Qusayr and the surrounding district of Homs province a key objective, and fierce fighting has raged in the vicinity for months.
In recent weeks, government troops backed by Hezbollah and members of the National Defence Forces, a pro-regime militia, have taken a string of villages and reportedly surrounded Qusayr on three sides.
The fighting has also spilled over into neighbouring Lebanon.
The National News Agency in Beirut said eight rockets fired from Syria hit Lebanon, without causing casualties or damage.
The SNC, a key component of the main opposition National Coalition, denounced the "barbaric and destructive bombing" of Qusayr.
It accused the regime of working with Hezbollah to "invade the town and wipe it and its residents off the map", and called for "an urgent meeting of the Arab League to stop the massacre in Qusayr".
"We say to the countries that are working for a political solution in Syria that allowing this invasion to go ahead in silence... will render any conference and any peace effort meaningless."
The United States and Russia are working to organise a peace conference next month, in a bid to find a political solution to the conflict.
Washington has backed the uprising against Assad, while Moscow is one of his staunchest allies.
But the embattled Syrian leader said in a weekend interview with an Argentine newspaper that he will not resign before the end of his mandate in 2014.
"To resign is to flee," he told Clarin newspaper.
The Syrian military was also advancing on other fronts, taking control of the rebel-held village of Halfaya in Hama province, the Observatory said.
State television reported the army "killed numerous terrorists from Al-Nusra Front in Halfaya", referring to a jihadist group branded as "terrorist" by the United States, and destroyed weaponry.
In Damascus, a military source said troops were advancing in the Barzeh district on the northern outskirts of the city.
The UN says that more than 70,000 people have been killed since the anti-Assad uprising erupted in March 2011, but the Observatory puts the death toll at around 94,000.