"It's a December to remember as the S&P rises +1.13% to reach a record high of 3,662.45," the New York Stock Exchange tweeted.
The Nasdaq finished up 1.28% to a record close of 12,355.11.
The US dollar fell and gold is back above US$1,800 an ounce.
The precious metal price shot up in the past 24 hours, from below $1,780/oz on the spot market, to about $1,812/oz at the time of writing.
Most base metals were buoyant on the London Metal Exchange, where copper closed up 1.6% to $7,688/t.
It touched $7,708/t yesterday - the highest intraday price since March 25, 2013, Marex Spectron's Anna Stablum noted.
Meanwhile Australia's economic activity grew in the September quarter by 3.3%.
Market futures were mixed.
Finally among the majors, Fresnillo gained 5.9% in London, Freeport-McMoRan rose 1.07% in New York and BHP was up more than 1.2% in midday Australian trade.