Traders at Tehran's Grand Bazaar have taken part in a big protest against rising prices and the plummeting value of Iran's currency, the rial.
Shops were shut and thousands of people took to the streets of the capital.
Riot police later fired tear gas to disperse the demonstrators as they marched towards parliament.
It was the biggest protest in Tehran since 2012, when international sanctions related to Iran's nuclear activities were crippling its economy.
The BBC's Kasra Naji says those protests led ultimately to a change in government and to Iran agreeing to substantive talks on a nuclear deal with world powers.
The economic sanctions were lifted after the deal was implemented in 2016, but President Donald Trump announced in May that the US was abandoning it.
Fears about the impact of the US sanctions that will start to be reinstated in August and possibly trigger the collapse of the nuclear deal has led to the rial falling to a record low against the dollar on the unofficial foreign exchange market.
A dollar is currently worth as much as 90,000 rials, compared with 65,000 rials just before Mr Trump's announcement and 42,890 at the end of 2017.
The currency's fall also prompted traders at two shopping centres in Tehran that specialise in mobile phones to go on strike in protest on Sunday.
Information and Communications Technology Minister Mohammad Javad Azari-Jahromi said the merchants returned to work after he promised to help them access hard currency for their imports.
The Iranian authorities attempted to halt the rial's slide in April by unifying the official and black market exchange rates and by banning trading at anything other than the official rate of 42,000 rials to the dollar. But dealers say the authorities have failed to keep up with the demand for hard currency since then.
There were also large-scale anti-government protests fuelled by Iran's economic problems in late December and early January. However, they were focused in provincial cities and towns rather than Tehran.