Several people were arrested at the fight that started in the food distribution queues at the former airport of Tempelhof, which has been turned into a temporary accommodation for 1,200 refugees, an AFP photographer witnessed.
The brawl came just hours after another mass fight at a refugee shelter in the Berlin suburb of Spandau, where migrants went at each other with fire extinguishers, a police spokesman said.
Windows were smashed, sofas were thrown, and fire extinguishers emptied, said police, adding that several residents of the shelter were wounded.
Some 500 people evacuated the building "in fear and panic" over the dispute.
Separately, two other fights broke out in other shelters.
At a refugee home in Berlin's Kreuzberg area, a 18-year-old struck a 17-year-old on the head with a belt, police said.
Meanwhile, five people were injured in a fight between Syrians in the showers of an accommodation in the eastern state of Saxony-Anhalt.
Such disturbances have occurred before in other shelters in Germany, with tensions escalating quickly between often traumatised people from different cultures sharing packed spaces.
At the same time, they have been relatively rare given the sheer numbers of new arrivals - Germany expects to take in a million asylum seekers this year alone, and has put up hundreds of thousands in flats, army barracks, sports halls and tent cities.
Germany's police union had called for refugees to be separated by religion and by country of origin to minimise the potential for conflict.