The S&P 500 index showed 35 new 52-week highs and seven new lows, while the Nasdaq recorded 57 new highs and 16 new lows.
Utilities, phone companies and other high-dividend paying stocks were among the biggest decliners.
Halliburton rose $1.21, or 2.7 percent, to $46.35 for one of Monday's biggest gains in the S&P 500.More news: Rep. MacArthur defends health care to raucous crowd
The Dow Jones Industrial Average was up 85.33 points, or 0.41 percent, to 20,981.94. The stock gained $1.97, or 1.3 percent, to $159.30. Energy stocks in the S&P 500 are still down almost 10 percent for 2017, while the overall index has climbed 7 percent. The Dow Jones Small-Cap Growth TSM Index closed at 8,430.83 for a gain of 1.86 points or 0.02%.
On the New York Mercantile Exchange, June West Texas Intermediate crude rallied $1.01, or 2.1%, to settle at $48.85 a barrel, the highest settlement since April 28.
Staples SPLS.O was off 3.6 percent and was the top percentage loser on the S&P 500 after the office supplies retailer reported a decline in quarterly sales.More news: This grand addition to Pippa Middleton's wedding costs £100000
The Federal Reserve provided some positive economic news, reporting that industrial production at USA factories, mines, and utilities rose 1 percent in April from March - the biggest gain since February 2014 and the third straight monthly gain.
Akebia Therapeutics (AKBA.O) was up 15 percent at $14.85 after the drug developer entered into an agreement with Vifor Pharma Group, which also made a $50 million equity investment in the company. The 10-year Treasury yield fell to 2.33%. Brent crude, the global standard, rose $1.23 to $52.16 per barrel on Monday. The 30-year yield rose to 3.01 percent from 2.99 percent, while the two-year yield slipped to 1.28 percent from 1.29 percent. This is 2.6 per cent below the revised March estimate of 1,203,000, but is 0.7 per cent above the April 2016 rate of 1,164,000. Heating oil rose 1 cent to $1.52 per gallon, while wholesale gasoline added 1 cent to $1.60 per gallon. Oil hit its highest in more than three weeks after top exporters Saudi Arabia and Russian Federation said supply cuts needed to last into 2018, a step towards extending a deal led by the Organization of Petroleum Exporting Countries (OPEC) to support prices for longer than originally agreed. France's CAC-40 lost 0.4 percent to 5,395.75. At the same time, the euro is trading above $1.10 and the sterling is close to $1.30. US gold futures gained 0.57 per cent to $1,237.00 an ounce.
Spot gold added 0.5 per cent to $1,236.91 an ounce.More news: BCCI congratulates Indian women's team
But prices finished below earlier highs above $49 after a month report from the Energy Information Administration revealed expectations for a monthly climb in USA shale oil production.