President Assad’s forces have retaken most of the land lost recently to rebels in Hama province, according to the Syrian Observatory for Human Rights.
Free Syrian Army fighters and groups allied with jihadists had mounted an assault in the strategically important area.
But Syrian troops have recaptured 16 villages in a counter-attack, strengthened by reinforcements sent by the regime and Russian air strikes, according to the UK-based monitoring group.
In air raids blamed by the opposition on Syrian government warplanes, a hospital in Hama province is said to have been struck.
Medical charity Medecins Sans Frontieres says two people were killed and there is evidence chemical weapons were used. Damascus denies using chemicals or attacking hospitals.
Up to 40,000 people have reportedly fled fighting in the area.