Gold futures rose to its highest level in two weeks after the U.S. dollar fell to a new low against the euro. Silver also ended with gains.
Gold for June delivery rose $16.30 to end at $948.30 an ounce on the Comex division on the New York Mercantile Exchange. The precious metal reached and intra-day high of $952.70 an ounce.
The euro climbed to $1.5979 against the dollar, on speculation the European Central Bank will keep its benchmark lending rate steady to reduce inflation.
Over the past year, gold has gained 37 percent, while the euro gained 18 percent as the U.S. Federal Reserve cut borrowing costs six times.
Silver futures for May delivery rose 47.5 cents, or 2.7 percent, to $18.325 an ounce.
Societe Generale said in a report released Tuesday that gold may trade sideways or lower in the next three weeks.