They also took two villages located southeast of Aleppo, as they advanced towards cutting off the army's supply route to Syria's second city.
Khan al-Assal was the last regime bastion in the west of Aleppo province, which lies on the Turkish border, said the Syrian Observatory for Human Rights.
The town lies on a road linking the province to the western part of Aleppo city where rebels have stepped up their bids to break a year-long stalemate and take control of areas still in regime hands.
"Opposition fighters have taken control of the town of Khan al-Assal, which is strategically located in the west of Aleppo province," said the Britain-based Observatory.
Also Read
The rebel Ninth Division, which is deployed in the western part of Aleppo city, also announced it had captured Khan al-Assal in an online video.
"We the leadership of the Ninth Division announce that the town of Khan al-Assal has been completely liberated," a rebel commander said in a video posted on YouTube.
The rebels had tried for several months to advance on Khan al-Assal.
The town's biggest battle took place in March, when the rebels took control of the police academy and temporarily seized several other positions.
The eight-day battle killed 200 rebels and government forces.
Both sides also traded accusations that chemical weapons were used in Khan al-Assal and killed around 30 people, according to toll released in March by the Observatory and the regime.
The rebels also seized today the villages of Obeida and Hajireh southeast of Aleppo city, the Observatory said.
Meanwhile, in Damascus, the loyalist air force staged two strikes against the eastern district of Jobar, home to sizeable pockets of resistance to the army, the Observatory said.
It also reported violence in southern Damascus and said the entrance to the Yarmuk Palestinian camp had been closed, a day after an army assault on rebel positions in the district.