Syrian combat aircraft and artillery are reported to be pounding two areas of Aleppo as the army battled for control there, but rebel fighters said troops loyal to President Bashar al-Assad had been forced to retreat.

Heavy gunfire was heard in the Salaheddine district in the southwest of the city.

Large clouds of black smoke rose into the sky after attack helicopters turned their machineguns on eastern districts and a MiG warplane later strafed the same area of the city.

The army said two days ago it had taken Salaheddine, but Syrian state television said troops were still pursuing remaining "terrorists" there, in an indication that the army did not after all have full control of the area.

A rebel commander in Aleppo said his fighters' aim was to push towards the city centre, district by district "within days, not weeks".

The rebels now control an arc that covers eastern and southwestern districts.

"The regime has tried for three days to regain Saleheddine, but its attempts have failed and it has suffered heavy losses in human life, weapons and tanks, and it has been forced to withdraw," said Colonel Abdel-Jabbar al-Oqaidi, head of the Joint Military Council, one of several rebel groups in Aleppo.

It has not been possible to verify independently who controls Salaheddine, a district that lies on a major road that the army could use to bring reinforcements into the city.

Reports from Syria cannot be independently verified due to state restrictions on foreign media.

Mr Oqaidi said late on Monday more than 3,000 rebel fighters were in Aleppo, but would not give a precise number.

The battle for Aleppo has become a crucial test for both sides in the 16-month-old rebellion. Neither Assad's forces nor the rag-tag rebels can afford to lose if they hope to prevail in the wider struggle for Syria.

Up to 18,000 people have been forced to leave their homes in Aleppo and many frightened residents were seeking shelter in schools, mosques and public buildings, according to figures given by the UN refugee agency in Geneva.