MEXICO CITY—Mexico's Congress voted amid fistfights and shouts of "treason" to end the 75-year monopoly of the state-owned oil firm Petróleos Mexicanos. The landmark bill aims to open the door for foreign oil giants to return to one of the world's biggest energy markets for the first time since 1938.

The bill passed the lower house 354-134 just minutes before midnight Wednesday, a day after it passed the Senate, and on Thursday Congress cleared the remaining related articles.

...