The Dow Jones industrial average rose 19.58 to 5,693.41, after sinking by nearly 30 points earlier in the session. Over the past week, the Dow had given back more than 100 points from a record high set last Wednesday.
Advancers led decliners by 1,348 to 827 on the New York Stock Exchange. NYSE volume totaled 381.96 million shares vs. 346.13 million in the previous session.
Broad-market measures turned higher too after starting the day lower with the bond market, where interest rates shot higher again.
The NYSE composite rose 1.80 to 360.24 and the S&P 500-stock index gained 3.77 to 671.70.
The Nasdaq composite was up 6.96 at 1,232.59 and the American Stock Exchange's market value index rose 2.14 to 609.41.
Early Thursday, bonds slid further after the Commerce Department's revised reading on gross domestic product showed that the economy was expanding at an annual rate of 2.3 percent in the first quarter as consumer spending surged.
The Commerce Department also reported that sales of new homes shot up 6.7 percent to 776,000 in April, exceeding 700,000 for a fourth straight month. The increase came despite a big upward revision in the March tally.
As bonds fell, the yield on the 30-year Treasury - a benchmark for many types of loans - jumped to 6.97 percent, worrying stock traders concerned about higher corporate borrowing costs and slower consumer spending. But bonds rose and the yield edged back down to 6.92 percent after a strong auction of new government securities.