Барселона расположена на северо-восточном побережье Пиренейского полуострова, обращенном к Средиземному морю, на плато, примерно ограниченном горным хребтом Коллсерола, рекой Льобрегат на юго-западе и рекой Бесос на севере.
Город находится между реками Льобрегат и Бесос, к югу от Пиренейских гор.