Heavy rain caused a nearby river to swell on Wednesday, pushing water over the field in the southern village of Tizert in the Taroudant region, where an amateur match was being played.
Spectators tried to escape, with some climbing on roofs, but at least seven people died, including a 17-year-old boy, the official MAP news agency said.
Government spokesman Mostapha El Khalfi said one of the bodies was still missing.
He added the government will take flood control measures to better handle adverse weather conditions.
Among the victims was recently married Hanafi Hilali, 35, who sought safety on top of a dressing room but was swept away by the raging waters, his brother Mohamed said.
The two had become trapped on the field, but Mohamed raced to rescue his son and his cousin, both young children.
“I could not return to rescue my brother,” he said.
Ahmad Afif, organiser of the game, said he was on the roof of the changing rooms alongside dozens of other fans when they received phone calls from a nearby village warning them of the flooding river.
Mr Afif was one of those who had fled to a safe place away from the river.
“We saw our brothers, our sons, our cousins dying. They were screaming at us for help, looking at us in desperation, but we couldn’t do anything to help.”
Morocco’s national weather service had recently warned of the risks of bad weather in several regions.