Russia has lifted a ban on supplying Iran with a sophisticated air defence missile system, the Kremlin has said.
Delivery of the S-300s was cancelled in 2010 after the UN imposed sanctions on Iran over its nuclear programme.
But the Russian president gave the go-ahead after Tehran struck an interim deal with world powers to curb nuclear activities in exchange for sanctions relief.
The US and Israel have criticised the news.
The $800m (£545m) contract to deliver the system was heavily criticised at the time by Israel and the US, who feared it could be used to protect Iranian nuclear sites from air strikes.
When it was cancelled, Iran filed a lawsuit seeking billions of dollars in damages.
Russia's Foreign Minister Sergey Lavrov said in a statement that the sale was put on hold "entirely voluntarily" to aid the talks on Iran's nuclear programme.
The Russian defence ministry said it was now ready to supply the S-300 equipment "promptly", an official there said, quoted by Interfax.
Iran hailed the decision as a step towards "establishing stability and security in the region," the country's defence minister, Hossein Dehghan, was quoted as saying by state media.
Israel, a vocal opponent of the nuclear deal, condemned the news.
"This is a direct result of the legitimacy that Iran obtained from the emerging nuclear deal,'' said Intelligence Minister Yuval Steinitz.
He said it was "proof" Iran planned to use relief from sanctions for arms, rather than the welfare of the Iranian people.
But Mr Lavrov said the missiles were "entirely defensive", and were of no security threat to any country, including Israel.
US Secretary of State John Kerry had raised concerns with Mr Lavrov about the announcement, White House spokesman Josh Earnest said, without elaborating.
The S-300 is a surface-to-air missile system that can be used against multiple targets including jets, or to shoot down other missiles.
It is not clear when the system would be delivered. Russia has stopped producing the model specified under the original contract and has instead offered an upgrade.
Russia was one of six major world powers to reach an outline agreement with Iran over its nuclear programme.
The sides have set a 30 June deadline to reach a comprehensive deal.
Tough negotiations lie ahead, in particular on how and when to lift sanctions.
Meanwhile, Mr Kerry is due to brief Congress, as the Obama administration attempts to persuade opponents not to block the deal's implementation.
He said they should "hold their fire" until they see a final agreement.
Iran's Supreme Leader, Ayatollah Ali Khamenei, has cautioned against seeing the interim agreement as a guarantee of a final deal.