Morales, a comic actor and TV personality with no political experience, had 69 percent of the vote to 31 percent for former first lady Sandra Torres, with 94 per cent of polling stations reporting.
"With this election you have made me president, I received a mandate and that mandate is to fight the corruption that has consumed us," said Morales on national TV.
"Thank you for this vote of confidence. My commitment remains to God and the Guatemalan people, and I will work with all my heart and strength not to defraud you."
It has been a remarkable ride for the conservative candidate, who started the race with just 0.5 percent support back in April.
Also Read
The campaign was rocked by president Otto Perez's resignation and arrest on corruption charges on September 3, three days before the first-round vote.
Perez, who is in jail awaiting trial, is accused of masterminding a corrupt network of politicians and customs officials that took bribes from businesses in exchange for illegal discounts on import duties.
Morales rode a wave of outrage with politics-as-usual in the impoverished Central American country, which is torn by gang violence and still recovering from a 36-year civil war that ended in 1996.
He won the first-round vote with 24 percent to 20 percent for Social Democrat Torres.