Their offensive is the swiftest battlefield advance by either side since the Syrian civil war began 13 years ago, exposing the weakness of the country’s military.
Terrified members of President Assad’s Alawite minority community are rushing to leave Homs, with video footage showing roads jammed with cars.
The rebels’ joint operations centre says its fighters have passed through two towns on the way to Homs – Rastan and Talbisseh – and are now within 5km (3.1 miles) of the city.
The BBC has not been able to verify these movements, but the Syrian Observatory for Human Rights (SOHR), a UK-based war monitor, is also reporting them.
Earlier, the SOHR said Russian warplanes had bombed a bridge in Rastan to try and slow the rebel advance.
After the Syrian military lost control of Hama following days of fighting, it is not clear whether it will be able to defend Homs.
Homs is a strategic city that links Damascus to the Alawite heartland on the Mediterranean coast.
The Alawites are a minority sect of Shia Muslims from which the Assad family originates.
They have long formed a major support base for Assad rule, and are key to the president’s grip on power.
Assad has vowed to “crush” the rebels and accused Western powers of trying to redraw the map of the region
But analysts say his forces are demoralised, dealing with low pay and corruption in the ranks. He announced a 50% pay rise in recent days, according to state news agency SANA.
Russia and Iran, the regime’s most important allies, have declared continued support for Assad,
But they have not provided the kind of military assistance that so far has been propping up his rule, and Moscow is now urging Russian nationals to leave the country.