The attack on a position held by the Jaish al-Izza rebel group took place on the edge of the northwestern province of Idlib, in an area due to being de-militarised.
According to the Syrian Observatory for Human Rights, government forces moved in to take a high building held by the rebels in a rural area of neighbouring Hama province.
Idlib and some surrounding areas are the last major rebel bastion in Syria, where the Russian-backed government has in recent months retaken much of the territory it had lost since the civil war erupted in 2011.
It had threatened an assault on rebel territory, home to around three million people, but a deal for a de-militarised buffer zone around it was reached in September between Moscow and Ankara.
Several deadly skirmishes have occurred since the deal but 22 is the highest number of known fatalities in a single incident inside the planned buffer zone, the Observatory said.
“This is the highest death toll in the de-militarised zone since it was announced,” Rami Abdel Rahman, head of the Britain-based monitoring group, told AFP.
He said dozens of rebel fighters were also wounded in the clash but could not provide a casualty toll for government forces.
It was not clear what prompted the attack, which did not appear to signal any large-scale government offensive or otherwise threaten the September 17 truce deal.
The government troops pulled out of the buffer zone after the flare-up, the Observatory said.
Jaish al-Izza is a rebel group which was formerly supported by the United States and is most active in the Lataminah area of Hama province, where the attack took place.
It is not a member of the main rebel alliance in the Idlib area and after initially rejecting the truce deal struck by Moscow and Ankara, it had begun complying and pulling back its heavy weaponry.
The withdrawal of the most radical fighters and the removal of heavy weapons from the planned buffer zone has not happened in full but the agreement successfully averted an all-out government assault.