The third attack on civilians in Europe in barely a week saw panicked shoppers fleeing the Olympia (OEZ) mall as elite police launched a massive operation to track down what had initially been thought to be up to three assailants.
"The perpetrator was an 18-year-old German-Iranian from Munich," police chief Hubertus Andrae told reporters after the rampage.
The shooter had dual citizenship and "no criminal record".
"The motive or explanation for this crime is completely unclear," he added.
Also Read
"We found a man who killed himself. We assume that he was the only shooter," police said on Twitter.
The statement came after explosives experts from the Munich police examined a backpack found on a dead man thought to be the lone assailant in the rampage, the German DPA news agency reported.
The man's body was found about one kilometre from the mall where the shootings took place, DPA said.
"We suspect terrorism," a police spokesman in the Bavarian capital said earlier, but there were no immediate indications of an Islamist link.
Germany has so far escaped the kind of large-scale jihadist attacks seen in neighbouring France and the motive of the supposed gunman was unknown.
Munich's main train station was evacuated and metro and bus transport in the city suspended for several hours while residents were ordered to stay in their homes, leaving the streets largely deserted.
By early today, transport services were running again, Munich police said.
Chancellor Angela Merkel will convene her security council today to address the deadly rampage in the European economic powerhouse which took in more than one million migrants and refugees last year.
The spree began before 0930 IST at the McDonald's and continued on a nearby street before at least one attacker moved into the Olympia centre -- which lies not far from the scene of the 1972 Olympics massacre.
Shoppers rushed away from the mall, some carrying children in their arms, as the building was surrounded by armed police and emergency vehicles, while helicopters buzzed overhead.