Deputy Mayor Sergei Orlov told the BBC that between 1,000 and 1,200 people had sought refuge in the building.
While the number of casualties is unclear, a local MP said the basement where people were gathered had withstood the bombing.
“It looks like most of them have survived,” Dmytro Gurin told the BBC.
But Petro Andriushchenko, an adviser to the city’s mayor, earlier said emergency workers were struggling to reach the building due to constant shelling.
Images of the theatre, verified by the BBC, showed extensive damage and smoke rising from the site.
Russia’s air strikes and shells have previously hit a maternity hospital, a church and apartment buildings.
Mariupol’s city council said in a statement that Russian forces “deliberately and cynically destroyed” the theatre, saying a “plane dropped a bomb on a building where hundreds of peaceful Mariupol residents were hiding”.
Both Dmytro Kuleba, the Ukrainian foreign minister, and the city council accused Russia of a “war crime” in the wake of the attack.
Ukraine’s President Volodymyr Zelensky denounced the bombing and said Russia had deliberately targeted the theatre.
“Our hearts are broken by what Russia is doing to our people. To our Mariupol,” he said in a video address late on Wednesday evening.
Satellite pictures taken on 14 March – released by the US company Maxar – showed the Russian word for “children” had been marked on the ground in large letters to warn Russian jets away from the building.
The BBC was earlier told that many children and elderly people were sheltering inside, and that conditions were quickly deteriorating.
Local authorities say at least 2,400 people have been killed in Mariupol since the start of the war, although they acknowledge this is likely to be an underestimate. Many of the dead are being buried in mass graves.
An estimated 300,000 residents are trapped inside the city, where running water, electricity and gas have been cut off. Food and water supplies are running low, as Russian troops have not allowed the delivery of humanitarian aid.
Hours after news of the destruction emerged, the Russian defence ministry denied it had carried out an air strike against the theatre, the RIA news agency reported.
About 1,500 cars had managed to flee Mariupol on Wednesday, according to Mr Orlov, the deputy mayor. But, he said, an attack by Russia on the convoy left at least five wounded, including a child.
Peter Maurer, the president of the International Committee of the Red Cross, called for better access to civilians caught up in the war, which he said was causing “enormous suffering”. Mr Maurer, who arrived in Ukraine for a five-day visit, described the situation in Mariupol as a “waking nightmare”.
Elsewhere, at least 10 people waiting in a queue for bread in the northern city of Chernihiv were killed by Russian shelling on Wednesday, the country’s prosecutor general said. Unverified footage released by a local outlet showed bodies on a street.
Dear God please spare and protect the people of the Ukraine….St Michael deter the evil against these people and end this inhumane war…..Change the heart of Putin and others that do such evil to innocent people….