Police detained several people among hundreds of protesters who turned up near Tehran University in defiance of a ban on gatherings for the anniversary of violent student demonstrations in 1999, the witness told Reuters. Another witness said police also used tear gas.
It appeared to be the worst outbreak of unrest in Tehran since security forces last month quelled days of opposition protests over the June 12 election, which moderate opponents of President Mahmoud Ahmadinejad say was rigged in his favor.
Even though Thursday's rally was a far cry from those that erupted after the vote, it was a sign of continuing discontent among at least some opposition supporters, who took part in the demonstration despite a heavy presence by the security forces.
"Police are shooting in the air and they have arrested several people," the first witness said.
Another witness at the scene in downtown Tehran said: "Police used tear gas twice to disperse the crowd. There were also many Basij militia on motorbikes patrolling the area."
Police urged passers-by through loudspeakers to leave the area, said the witnesses, who asked not to be named.
"They were about 250 people who shouted in favor of (defeated presidential candidate Mirhossein) Mousavi and made the victory sign. Police dispersed them," a third witness said.
Another Tehran resident said a group of pro-reformers gathered outside the main United Nations building in a northern part of the capital of 12 million people.
Witnesses said riot police and Basij militia fiercely loyal to Iran's Supreme Leader Ayatollah Ali Khamenei were out in force in Tehran for Thursday's anniversary of the 1999 protests, in which one student was killed.
Iranian police chief Esmail Ahmadi-Moghaddam had said the force would strongly confront any anniversary protests.
Iran's English-language state Press TV said "calls for a major demonstration ... have failed to attract a large crowd," adding police used tear gas to break up the demonstration.
Thursday's protest was much smaller than those in the week after the presidential election, when hundreds of thousands of Mousavi supporters demonstrated in Tehran and other Iranian cities, before the security forces cracked down.
Iranian authorities have said at least 20 people were killed in the post-election violence as protesters clashed with riot police and Islamic Basij militia. The clerical establishment and Mousavi blame each other for the bloodshed.
The government accuses the West of inciting the unrest, the worst in Iran since the 1979 Islamic revolution.
Rights activists have said some 2,000 people detained after the June vote may still be held across Iran, including leading reformers, academics, journalists and students.
Mohammad Ali Dadkhah, a prominent human rights lawyer who works with Iranian Nobel Peace Prize laureate Shirin Ebadi, was detained earlier this week, a source close to Dadkhah said.
(Writing by Parisa Hafezi and Fredrik Dahl; Editing by Mark Trevelyan)