Sobral sang his Amar Pelos Dois (Love For Both) in a high, clear tenor accompanied by quiet strings and a piano.
He said: "We live in a world of disposable music, fast food music without content and I think this can be a victory for music that means something".
"Music is not fireworks, music is feeling", the 27-year-old said as he accepted the award.
Lucie Jones, who represented the United Kingdom with "I'll Never Give Up on You", came 15th with 111 points. The third place went to SunStroke Project from Moldova, who received 374 points.
The competition marked the second year in which the voting system has been made up of two parts, the jury vote - where each of the 42 voting countries gave out 1-12 points based on the opinions of a selected jury - and the public vote, which added up votes from the general viewing public.
This year, Ukraine has used the contest to take tentative steps to soften the climate of homophobia prevalent in the ex-Soviet Union.
Portugal had been one of the favourites to win, along with Italy's entry, which came sixth.
Chinese state media says US should take some blame for cyber attack
The People's Daily said China has called for enhanced cyber security and a rules-based order in cyber space . China Daily said the US had hindered efforts to stop global cyber threats after the WannaCry attack.
A year ago its contestant Jamala won with a song called "1944", referring to the Stalin-era deportation of her Crimean Tatar ethnic group from the Black Sea peninsula.
BBC Monitoring reported that Ukrainian TV identified him as "scandalous" Ukrainian prankster Vitaliy Sedyuk.
Earlier in the show, security guards wrestled a streaker from the stage during a performance by last year's victor Jamala.
The incident forced BBC commentator Graham Norton to apologise to United Kingdom viewers at home, telling them: "It's been brought to our attention that you may have witnessed a bare bottom earlier in this performance".
After the victory, Sobral and his sister attended the press conference at the International Exhibition Centre in Kyiv.
Kristian Kostov from Bulgaria, center, reacts during the voting stage of the the Final for the Eurovision Song Contest, in Kiev, Ukraine, Saturday, May 13, 2017.