The venue was due to be announced on 26 August, but a press conference was cancelled at the last minute.
Organisers said they were "still discussing" candidates, but fans speculated Ukraine might pull out of the contest for financial reasons.
Eurovision said Kiev, the capital city, would prove to be a "worthy host".
"Kiev presented an excellent case and we are looking forward to working together to create the most electrifying show yet next May," said Jon Ola Sand, who oversees the contest for the European Broadcasting Union.
Hosting the contest costs millions of pounds. This years, Sweden is thought to have spent £12m on staging the three live shows, making it the lowest-budget production in years.
The city of Baku, in Azerbaijan, which hosted the contest in 2012, spent £48m after building the Baku Crystal Hall specifically for the event. In 2014, Denmark spent £36m and received £13m in tourism spending, while Austria paid £28m and received £22m in 2015.
Millions of viewers watched Ukrainian singer Jamala win the 2016 contest, held in Stockholm last May.
Her song, 1944, had been the target of criticism, as its lyrics referenced the deportation of Crimean Tatars under Josef Stalin, which some said broke Eurovision rules on songs that contain political messages.
However, it scored a resounding victory, winning 534 points, largely drawn from viewers' phone votes.
The 2017 contest will be held in Kiev's International Exhibition Centre, which has the capacity for 11,000 spectators.
The semi-finals will take place on Tuesday 9 and Thursday 11 May, with the grand final on Saturday 13 May.
Follow us on Twitter @BBCNewsEnts, on Instagram at bbcnewsents, or if you have a story suggestion email entertainment.news@bbc.co.uk.
The Ukrainian city of Kiev will host the 2017 Eurovision Song Contest, it has been announced, after a fortnight of delays.