Barcelone est située sur la côte nord-est de la péninsule ibérique, face à la mer Méditerranée, sur un plateau à peu près large limité par la chaîne de montagnes de Collserola, la rivière Llobregat au sud-ouest et le Besòs au nord.
La ville se trouve entre les rivières de Llobregat et de Besòs, et au sud des Pyrénées.