New York - US stocks rallied for a third straight day on Wednesday, lifted by some positive economic and corporate earnings news, with Yahoo surging six percent as it beat Wall Street forecasts.
The Dow Jones Industrial Average added 162.29 points (1.00%) at 16,424.85.
The broad-based S&P 500 surged 19.33 (1.05%) to 1,862.31, while the Nasdaq Composite outperformed, adding 52.06 (1.29%) at 4,086.23.
"People are feeling a little bit more comfortable taking a little more risk today," said Michael James of Wedbush Securities.
A pair of official reports for March, on home construction and industrial production, bolstered sentiment before the markets opened.
The Federal Reserve's Beige Book on US economic conditions confirmed the central bank's view that recent weakness was largely due to bad winter weather.
Yahoo reported a stronger-than-expected first-quarter profit, results hailed by chief executive Marissa Mayer as showing growth in the Web giant's "core" business. Shares soared 6.3% on the Nasdaq.
Google advanced 3.8%. After the markets closed, Google reported first-quarter profit of $3.45bn, a 32% jump from a year ago but missing analysts' estimates. Shares dived 5.9% in after-market trade.
Dow member Intel rose 0.6%. The computer chip giant reported a modest 5% dip in first-quarter earnings to $1.9bn, beating Wall Street estimates.
Bank of America was in focus after swinging to a $276m loss for the first quarter, taking a hit from $6bn in legal expenses to settle lawsuits dealing mostly with the bank's sale of mortgage-backed securities.
Bank of America, the second-largest US bank by assets, fell 1.6%.
Credit-card company Visa led the Dow higher, gaining 2.6%. Other blue-chip financials saw demand: American Express (+1.6 %), Goldman Sachs (+1.5%) and JPMorgan Chase (+0.8%).
Twitter dropped 2.4%. Chinese microblogging service Weibo - often described as China's version of Twitter - makes it US market debut on the Nasdaq on Thursday. The company hopes to raise at least $340m.
Bond prices were mixed. The yield on the 10-year US Treasury rose to 2.64% from 2.63% on Tuesday, while the 30-year slipped to 3.45% from 3.46%. Bond prices and yields move inversely.