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.
NY Senate votes to accelerate start of upstate Uber, Lyft
The passage reaffirms the possibility that ride-hailing services Uber and Lyft will return to the capital city. Both claimed they found particularly onerous the fingerprint background check requirement for drivers.
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.