Protests took place outside at least two universities, with tear gas reportedly fired.
US President Donald Trump tweeted support for the “inspiring” protests.
Iran on Saturday admitted downing the jet “unintentionally”, three days after the crash that killed 176 people.
Ukraine International Airlines flight PS752, en route to Kyiv, was shot down on Wednesday near Imam Khomeini Airport in Tehran shortly after take-off, and only hours after Iran had fired missiles at two air bases housing US forces in Iraq.
Those attacks were Iran’s response to the US killing of senior Iranian commander Qasem Soleimani in a drone strike in Baghdad on 3 January.
Dozens of Iranians and Canadians, as well as nationals from Ukraine, the UK, Afghanistan and Germany died on the plane.
What happened at the protests?
Students gathered outside at least two universities, Sharif and Amir Kabir, reports said, initially to pay respect to the victims. Protests turned angry in the evening.
The semi-official Fars news agency carried a rare report of the unrest, saying up to 1,000 people had chanted slogans against leaders and tore up pictures of Soleimani.
The students called for those responsible for the downing the plane, and those they said had covered up the action, to be prosecuted.
Chants included “commander-in-chief resign”, referring to Supreme Leader Ali Khamenei, and “death to liars”.
Fars said police had “dispersed” the protesters, who were blocking roads. Social media footage appeared to show tear gas being fired.
Social media users also vented anger at the government’s actions.
One wrote on Twitter: “I will never forgive the authorities in my country, the people who were on the scene and lying.”
The protests were, however, far smaller than the mass demonstrations across Iran in support of Soleimani after he was killed.
What has been the reaction?
President Trump tweeted in both English and Farsi, saying: “To the brave and suffering Iranian people: I have stood with you since the beginning of my presidency and my government will continue to stand with you.
“We are following your protests closely. Your courage is inspiring.”
Secretary of State Mike Pompeo tweeted video of the protests in Iran, saying: “The voice of the Iranian people is clear. They are fed up with the regime’s lies, corruption, ineptitude, and brutality of the IRGC [Revolutionary Guards] under Khamenei’s kleptocracy. We stand with the Iranian people who deserve a better future.”
The UK’s Foreign Secretary Dominic Raab issued an angry statement after British ambassador Rob Macaire was arrested “without grounds or explanation” in a “flagrant violation of international law” at one of the protests in Tehran.
Mr Macaire was detained at the demonstration outside Amir Kabir and was later released.
Mr Raab said Iran could “continue its march towards pariah status… or take steps to de-escalate tensions and engage in a diplomatic path forwards”.
How did the Iranian admission unfold?
For three days, Iran had denied reports its missiles had brought down the plane, with one spokesman accusing Western nations of “lying and engaging in psychological warfare”.
But on Saturday morning, a statement read on state TV accepted the plane had been shot down.
Brig-Gen Amir Ali Hajizadeh, the Revolutionary Guards’ aerospace commander, explained what happened.
He said a missile operator had acted independently and alone, mistaking the plane for a “cruise missile” as there had been reports that such missiles had been fired at Iran.
“He had 10 seconds to decide. He could have decided to strike or not to strike and under such circumstances he took the wrong decision,” Gen Hajizadeh said.
“He was obliged to make contact and get verification. But apparently, his communications system had some disruptions.”
Gen Hajizadeh said the military would upgrade its systems to prevent such “mistakes” in the future.
He said he had “wished he was dead” after being told of the missile strike.
Gen Hajizadeh said he had informed the authorities about what had happened on Wednesday, raising questions about why Iran had denied involvement for so long.
Ayatollah Khamenei said there was “proof of human error”, while President Hassan Rouhani said Iran “deeply regrets this disastrous mistake”.
Foreign Minister Javad Zarif laid part of the blame on the US. “Human error at a time of crisis caused by US adventurism led to [this] disaster,” he said.
How have Canada and Ukraine reacted?
Both Ukrainian President Volodomyr Zelensky and Canadian Prime Minister Justin Trudeau spoke with Mr Rouhani on Saturday.
Mr Trudeau said he was “outraged and furious” and had told Mr Rouhani that there must be a full investigation with “full clarity on how such a horrific tragedy could have occurred”.
Mr Trudeau said: “Canada will not rest until we get the accountability, justice and closure the families deserve… they are hurt, angry and grieving and they want answers.”
Mr Zelensky, who has demanded compensation and an apology, said Mr Rouhani had assured him that “all persons involved in this air disaster will be brought to justice”.
In the Canadian city of Edmonton, Pegah Salari is helping to organise a memorial service for the victims from the city on Sunday.
She says the latest admission by Iran means “now it’s more than grief”, first felt in the Iranian-Canadian community there.
“It’s anger, frustration,” she said.
Many on the plane were living there, including 10 people – faculty members, students, and alumni – from the University of Alberta.
Ms Salari is openly critical and distrustful of the Iranian government and is watching news of the protests in Iran with both trepidation and hope.
There are some in the Iranian diaspora in Canada who support the government in Tehran, which can cause tension, she said.
For the moment, that has been set aside, Ms Salari says.
“It’s not a political matter, it has nothing to do with economics. This for the first time is a human tragedy and all those lost lives has brought people closer and opened some eyes.”