Spot gold jumped 1.2pc to $1,415.51 an ounce by 12:45 p.m. EDT (1645 GMT), heading for a fifth straight session of gains. Its session high of $1,416.84 was its highest level since late August 2013.
US gold futures rose 1.4pc to $1,419.20 an ounce.
"Gold is holding some sprawling gains from the earlier sessions prompted by slumping dollar and increasing safe haven demand on the back of President Trump threatening to impose new sanctions on Iran," said Alex Turro, market strategist at RJO Futures.
"Gold is also getting some underlying support by the central banks trying to cut rates."
Trump imposed new US sanctions on Iran on Monday following Tehran's downing of an unmanned American drone and said the measures would target Iranian Supreme Leader Ayatollah Ali Khamenei.
Gold prices have risen over 8pc this month, and about $75 an ounce over the past week.
"It's the strong upside momentum from last week along with higher ETF buying and a weaker dollar boosting gold prices," INTL FCStone analyst Edward Meir said.
Holdings of the world's largest gold-backed ETF, SPDR Gold Trust, jumped 4.6pc on Friday from the previous day, its biggest daily percentage gain since September 2008.
Helping gold's appeal, the dollar dipped, having faced its biggest weekly drop last week since mid-February on bets the US Federal Reserve would start lowering interest rates as early as next month.
The Fed and the European Central Bank last week hinted they were open to easing policy to counter a global economic slowdown, exacerbated by trade tensions.
The market will watch a summit in Japan this week of leaders from the Group of 20 leading world economies, hoping Washington and Beijing can resolve their trade dispute.
"The climb in gold prices have woken people up. ... Now that gold has broken the 1,400 level, it is expected to go up," said an analyst based in New York.
Speculators also boosted their bullish stance in COMEX gold in the week to June 18, the US Commodity Futures Trading Commission said on Friday.
Silver edged 0.4pc higher to $15.42 per ounce and platinum rose 0.9pc to $812.70.
Palladium climbed 2.6pc to $1,538.19 an ounce.