Held over from 2020 due to the coronavirus pandemic, the European Championship will now be held in 11 different countries from June 11-July 11.
UEFA president Aleksander Ceferin welcomed being able to “guarantee a safe and festive environment” with fans “at every match”.
Dublin and Bilbao lost out after the Irish government and Basque region officials were unable to assure UEFA of fans despite the pandemic.
“We just think June is too soon,” Irish Deputy Prime Minister Leo Varadkar had said on Wednesday.
Dublin’s three group matches go to St Petersburg, with Wembley the new venue for its round of 16 game.
Seville gets Bilbao’s three matches and round of 16 tie after its regional authority pledged to European football’s governing body the Estadio La Cartuja could be filled to 30% capacity.
UEFA said it had forced the switch “simply to allow fans to attend the games after a year of not being able to watch live football in stadiums”.
Budapest, St Petersburg, Baku, Amsterdam, Bucharest, Glasgow, Copenhagen, Rome and London had all promised crowds at between 25 per cent and 100 per cent of capacity in the run up to UEFA’s deadline this month.
Munich, venue for world champions France against Germany on June 15, got the go-ahead for their four matches after confirmation from local authorities they would be able “to welcome a minimum of 14,500 spectators”, UEFA’s statement confirmed.
Whilst there will be disappointment in Dublin and Bilbao for missing out, UEFA expressed its “appreciation and gratitude” to the two cities, saying “both are considered as good venues to host future UEFA events”.