Caputova, who has almost no political experience, defeated Maros Sefcovic, an EU energy commissioner nominated by the governing party, Smer-SD.
She won 58 percent of the vote, with Sefcovic trailing with 42 percent in the Saturday election.
Caputova, 45-year old divorcee and mother of two, is a member of the liberal Progressive Slovakia party which has no seats in parliament.
Delivering her acceptance speech, she said her victory showed “you can win without attacking your opponents”, after a campaign based on progressive values and political reform.
Her campaign used the slogan “Stand up to evil”, but she reportedly avoided personal attacks on her opponents.
“Let us look for what connects us. Let us promote cooperation above personal interests,” she told a crowd of supporters in Bratislava.
“I am happy not just for the result, but mainly that it is possible not to succumb to populism, to tell the truth, to raise interest without aggressive vocabulary.”
Prior to her entry into politics, Caputova was a civil activist best known for blocking a planned landfill site in her home town in 2016.
She also played a role in anti-government protests that broke out after the murder of the investigative journalist Ján Kuciak and his fiancee, Martina Kusnirova.
Kuciak was looking into links between politicians and organised crime when he was shot at home alongside his fiancée in February 2018.
Caputova cited Kuciak’s murder as one of the reasons she decided to run for president.
She will be sworn in on June 15 when President Andrej Kiska finishes his term in office.
Kiska, regarded as a progressive force in Slovak politics and who decided not to run for a second term in office, welcomed the election result.
“Slovakia is in a moral crisis and needs a president like Zuzana Caputova,” he said