Stocks gained on Friday, with the Dow closing at a three-month high, as oil fell to its lowest price since late July and workers at General Motors Corp. (GM) ratified a deal to cut health-care costs.

The drop in oil prices especially helped the stocks of blue-chip industrial companies like aluminum producer Alcoa Inc. (AA) and United Technologies Corp. (UTX), which are huge consumers of energy.

Dell Inc. (DELL) shares rose 0.7 percent after the world's No. 1 personal computer maker said it would buy back at least $1.7 billion in stock. The move boosted other large-cap technology shares like Microsoft Corp. (MSFT) and pushed the Nasdaq up to a three-month closing high.

The Dow Jones industrial average rose 45.94 points, or 0.43 percent, to end at 10,686.04, the highest since August 3. The Standard & Poor's 500 Index gained 3.76 points, or 0.31 percent, to finish at 1,234.72. The technology-laced Nasdaq Composite Index advanced 5.79 points, or 0.26 percent, to 2,202.47 — its highest close since August 3.

For the week, stocks scored their third straight week of gains, with the Dow and Nasdaq both up 1.5 percent, while the S&P 500 added 1.2 percent.

"I think the trend is decidedly up as far as the market is concerned," said Dan McMahon, head of listed trading at CIBC World Markets Inc. "GM stock has rallied. People are looking to find values."

GM's stock climbed 4.1 percent, or 97 cents, to $24.48 and gave the Dow average its biggest boost after the United Auto Workers union said GM's employees have agreed to accept a deal to shift some health-care costs to hourly workers. GM, the world's largest auto maker, has said the agreement would save $1 billion a year.

The gains in GM's stock marked a partial recovery from its steep back-to-back slides on Wednesday and Thursday that brought it to a 23-year low.

U.S. crude oil futures for December delivery fell 27 cents to settle at $57.53 a barrel, the lowest futures closing price since July 22, on the New York Mercantile Exchange. In overnight electronic trading, NYMEX December crude touched $56.93, the lowest since July 21.

Alcoa shares jumped 1.5 percent, or 40 cents, to $26.68, while United Technologies' stock added 1.1 percent, or 57 cents, to $53.45.

"It seems that some of the pressure is off with oil, but you'll still have to look at where we are with regards to Christmas and the retail season," said Bernie Myszkowski, director of equity investments at ABN Amro Asset Management in Chicago.

The stock of department store operator Kohl's Corp. rose 3.2 percent, or $1.56, to $50.68, a day after the retailer said its quarterly earnings rose 15 percent. A focus on new clothing brands attracted customers to its stores.

Dell's stock rose 0.7 percent, or 19 cents, to $29.40 a day after the company unveiled a big stock buyback. The stock's gains early in Friday's regular session marked a turnaround from electronic trading before the opening bell, when Dell shares had fallen to $28.95.

"Dell reversed in the morning, indicating a strong market," McMahon said. Most corporate earnings have been "decidedly upbeat," raising investor optimism for an end-of-the-year rally, he added.

Microsoft Corp. rose 0.7 percent, or 19 cents, to $27.28 in Nasdaq trading, boosting both the Nasdaq 100 and the S&P 500.

Trading was moderate on the New York Stock Exchange, with about 1.30 billion shares changing hands, below last year's daily average of 1.46 billion, while on Nasdaq, about 1.46 billion shares traded, under last year's daily average of 1.81 billion.

Advancing stocks outnumbered declining ones by a ratio of 4 to 3 on the NYSE and by 6 to 5 on the Nasdaq.

The lighter volume may have been due to the Veterans Day holiday, which was observed on Friday. The U.S. Treasury market was closed on Friday and some Wall Street professionals used the day to start a long weekend.