Spot gold gained 1 percent to $1,268.38 per ounce at 1:40 p.m. EST in thin trade ahead of the Christmas holiday. The metal hit its highest since late June at $1,267.13 earlier in the session.
U.S. gold futures settled $13.70 higher at $1,271.80 per ounce.
• "Gold has continued to be firm here in the course of equity market weakness and an ongoing bevy of factors that are concerns for the market such as trade wars, interest rate hikes
• Global stocks continued their downward trend for the seventh straight session as possibilities of a prolonged U.S. government shutdown and a deteriorating global economy unnerved investors.
"Gold prices are moderately higher on safe-haven buying interest heading into the Christmas holiday," Kitco Metals senior analyst Jim Wyckoff wrote in a note.
"A lower U.S. dollar index today is also working in favor of the precious metals market bulls. There is marketplace unease over the U.S. government's partial shutdown that could last a while."
• The dollar was pressured amid concerns that the U.S. Federal Reserve will keep raising rates into a weakening economy.
"If the Fed is going to continue its aggressive stance, then our economy will slow down and a recession is a possibility. There is just so much negative news, that I cannot see gold do anything but go up," said Walter Pehowich, executive vice president of investment services at Dillon Gage Metals.
• Among other metals, palladium rose .6 percent to $1,239.00 per ounce.
Silver rose 1 percent to $14.74, while platinum fell .2 percent to $785.50 per ounce.
Reference: CNBC