At least 20 young anti-government demonstrators were injured and 100 were arrested in clashes with riot police breaking up a Tehran rally.
Incidents in Tehran and other centres came as Iran marked the 22nd anniversary of the Islamic revolution.
Armed police fired tear gas and beat some protesters with clubs after some 3,000 protesters chanted and held banners reading "We Are Against the Islamic Regime", and supporting freedom of expression.
Police destroyed all the signs and arrested some 50 of the young protesters, students said, adding that police hit some demonstrators with clubs.
Several protesters who fled the Mellat (People's) Park area were beaten by police in nearby streets, witnesses said. On Thursday night two strong explosions were reported in the park. No group claimed them nor was there official comment.
The state news agency IRNA reported "some 300 young people" demonstrating against "what they called `the lack of freedom of speech'."
The report said the group was moving toward Vanak Square, to the south of the park, "when the law enforcement forces blocked their way and dispersed the protesters."
IRNA gave no reports on injuries or arrests. It said "opposition groups abroad had previously called upon their backers in Iran to launch a demonstration in the country today in protest to Iran's Islamic system."
Demonstrations also took place yesterday morning in the western cities of Urumieh and Qazvin and the eastern city of Bojnurd, injuring several people, witnesses said.