"Ranil Wickremesinghe has been elected as the eighth executive president under the constitution," the secretary general of parliament said after counting finished.
The win for Wickremesinghe, opposed by many ordinary Sri Lankans, could lead to more demonstrations by people furious with the ruling elite after months of severe shortages of fuel, food and medicines, several protesters have said.
The other main candidate, ruling party lawmaker Dullas Alahapperuma, was more acceptable to the protesters and the opposition but did not have any top-level governance experience in a country with barely any dollars for imports and desperately in need of an IMF bailout.
The 225-member parliament gave 134 votes to Wickremesinghe and 82 to Alahapperuma. A third candidate, Anura Kumara Dissanayaka, got just three votes.