The Dow Jones industrial average rose 4.07 to 5,872.92, pulling higher in the final minutes after meandering in negative territory for most of the session.
Advancers outnumbered decliners by a 5-to-4 margin on the New York Stock Exchange, with 1,291 up, 1,029 down and 903 unchanged.
NYSE volume totaled 406.79 million shares, vs. 499.85 million yesterday. The Standard & Poor's 500-stock index rose 0.34 to 686.20, and the NYSE's composite index rose 0.28 to 366.27, padding yesterday's record high.
The Nasdaq composite index rose 2.07 to 1,230.05, and the American Stock Exchange index rose 1.28 to 568.47.
Broader measures also finished higher, but trading continued with the sluggish tone that has prevailed since Tuesday afternoon's decision by the Federal Reserve's not to raise its interest rates.
The stock market had already rallied to record levels ahead of the Fed meeting, and stock investors have grown hesitant about bidding the market higher without new incentives, analysts say.
Bonds gave back early gains as investors took some profits on this week's rally. As bond prices slipped, the yield on the 30-year Treasury bond - a key determinant of corporate and consumer borrowing costs - edged higher to 6.90 percent from late yesterday's 6.87 percent. At the beginning of the week, the yield was above 7 percent.