The Ataturk Olympic Stadium in Istanbul will host the Champions League final for a second time in 2020.
Istanbul was chosen over Lisbon by the UEFA executive committee, which will also decide in September whether Turkey or Germany should host the 2024 European Championship.
The 2005 Champions League final in Istanbul produced one of the competition's most memorable matches. Liverpool trailed 3-0 at halftime against AC Milan, but leveled midway through the second half and won a penalty shootout.
The 2020 Europa League final will be played in Gdansk, Poland, while the Super Cup between the Champions League and Europa League winners will be at Estadio do Dragao in Portugal.
The women's Champions League final will be staged at Austria Arena in Vienna.
UEFA have been under pressure to ensure future final host cities have the hotel and airport infrastructure to cope with the influx of fans, delegates and media for the biggest game in club football.
Liverpool have complained to UEFA after their fans have faced spiralling accommodation and travel costs for fans trying to attend Saturday's final against holders Real Madrid in Kiev, the city which played host to the Euro 2012 final.
"They just don't have the airport infrastructure and the hotel capacity to cope with an event of this size and there isn't another major city within real hitting distance of it," Liverpool chief executive Peter Moore told the Liverpool Echo newspaper.
"It's not only affected Liverpool fans but Real Madrid fans too. There will be lessons learned from this. Rest assured, I've raised this at the highest levels of UEFA."
Ceferin had already reintroduced a tender process for bidding for finals since taking over as UEFA president from Michel Platini.
The decision to award the final to Kiev was made prior to Ceferin's election as president in 2016.
Next season's final will be held at the 67,000-capacity Wanda Metropolitano, home of Atletico Madrid.