The explosives-packed cars blew up at daybreak in a pro-regime neighborhood of the Christian Druze town of Jaramana, residents, state media and a rights watchdog reported.
The blasts ripped through a central square near a petrol station, one going off as one of the bomb-laden car was driven against the traffic down a main road lined by many people.
There was a ball of fire at the end of a narrow lane, and the impact of the explosions brought walls down onto cars, crushing them and scattering debris over the ground.
Pools of blood and severed body parts were on the streets, said an AFP photographer.
The death toll mounted as the day wore on, with the Syrian Observatory for Human Rights giving tallies of 20, then 29, 38 and later 54. All of the dead were civilians.
More than 120 people were wounded, and many residents rushed with them to hospital.
“What do they want from Jaramana? The town brings together people from all over Syria and welcomes everybody,” one told AFP.
An AFP correspondent on the Syria-Turkey border reported that rebel fighters shot down a fighter jet in the embattled northwest.
The aircraft was hit by a missile and crashed at Daret Ezza, said the Observatory, a Britain-based watchdog that relies on a network of activists and medics on the ground.
Witnesses said the rebels later captured one of the pilots.
“Two pilots used parachutes to jump out of the plane after it was hit,” a witness told an AFP reporter one kilometre (less than a mile) away in Tourmanin. “One of them was taken prisoner.”
The rebels were seen carrying him and taunting Assad in YouTube videos.
“This is your airplane, oh Bashar,” a man said in one video as fire and smoke rose from the mass of broken metal. “The (rebel) Free Syrian Army has downed it.”
It came a day after rebels downed an army helicopter for the first time with a newly acquired ground-to-air missile, in what the Observatory said had the potential to change the balance of military power.