Gold soared as much as 2.8% on Monday to its highest level in seven years, as investors worried about global economic growth in the face of sharply rising coronavirus cases outside China. Spot gold climbed 2.1% at $1,677.24 per ounce by 10:38 a.m. EST (1538 GMT). The session high, $1,688.66, was its highest since January 2013. US gold futures for April delivery rose 1.9 % to $1,680.20 per ounce.
US gold futures jumped 2.2% to $1,684.30.
"The markets are spooked right now," said Bob Haberkorn, senior market strategist at RJO Futures, citing coronavirus fears.
"The concern is not about the virus precisely, it is from the economic standpoint. The Dow Jones is down about 1,000 points, the bond yields are also lower."
There was a sharp rise in coronavirus cases reported in Italy, South Korea and Iran, with Afghanistan and Iraq reporting their first cases. However, the rate of infection in China has eased.
Outside mainland China, the outbreak has spread to about 29 countries and territories, with a death toll of about two dozen, according to a Reuters tally.
The World Health Organization said it was worried about the growing number of cases without any clear link to China.
Investors view gold and other assets like government bonds and the US dollar as safe havens during times of stress.
Investors' fears over the virus outbreak triggered a wide sell-off in equity markets. The Dow Jones industrials slid more than 800 points, below its 100-day moving average for the first time since October.
In Europe, markets had their biggest daily declines since mid-2016.
"The upswing in the gold price is being accompanied by further ETF inflows. Speculative financial investors have also increased their bets on rising gold prices significantly," Commerzbank analysts said in a note.
Reflecting increased investor interest in bullion, speculators raised their bullish positions on COMEX gold and silver contracts in the week to Feb. 18, data showed on Friday.
Mirroring gold's gains, silver rose 1.6% to $18.75 an ounce, having hit its highest since September at $18.90. Palladium eased 3.3% to $2,613.59 per ounce, while platinum shed 1.1% to $962.72.