The programme would let private firms explore and extract oil and gas with state-run firm Pemex, and take a share of the profits.
The measure must now be approved by 17 of the country’s 32 federal entities.
Mexico nationalised its energy industry in 1938.
Thursday’s vote to approve the measure lasted hours and was reported to be heated.
Mexico’s President President Enrique Pena Nieto has said the move is necessary to modernise Mexico’s energy sector and increase oil production, which has dropped from 3.4 million barrels per day in 2004 to the current rate of 2.5 million barrels per day.
Most observers expected that the signature reform of Mr Pena Nieto’s presidency would pass.
However, the left-wing Democratic Revolution Party said it was a submission to US oil companies, and protest camps were set up outside the Senate.
They said the move strikes at the heart of Mexico’s identity.
In 1938, then-president Lazaro Cardenas nationalised the oil industry, which had been operated by foreigners up to that point, asserting that Mexico had a right to its mineral wealth.