The America's Cup will be held in Barcelona in 2024 when Emirates Team Zealand defend the oldest and most prestigious title in sailing.
Barcelona's Mayor Ada Colau spoke of "very good news" for the city which hosted the 1992 Olympic Games.
Team New Zealand have the right to defend their title in their own waters but could not reach a financial agreement for a venue in their home country.
Spain's Malaga, Ireland's Cork and Jeddah in Saudi Arabia were other bidders for the 37th edition of the classic event.
The only previous America's Cup not hosted by the defending champion was in 2007 when it was not possible in land-locked Switzerland.