Barcelona wird von verschiedenen Bahnhöfen bedient, die jeweils unterschiedliche regionale und nationale Ziele ansteuern. Der Hauptbahnhof ist Barcelona Sants, gelegen im Stadtteil Sants-Montjuïc. Dies ist der größte Bahnhof der Stadt und der Hauptknotenpunkt für Hochgeschwindigkeitszüge, einschließlich AVE-Diensten, die nach Madrid und anderen großen Städten fahren. Darüber hinaus bedient er Regionalzüge und ist gut an den restlichen Verkehrsnetz der Stadt angebunden.
Ein weiterer bedeutender Bahnhof ist Passeig de Gràcia, der im Stadtteil Eixample liegt. Dieser Bahnhof ist bekannt für seine Verbindungen zu Regionalzügen und dient als Umsteigestelle für verschiedene Bahnangebote, darunter solche, die in die Costa Brava und andere Gebiete in Katalonien führen.
Der Bahnhof Barcelona França ist ein historischer Bahnhof, der im Stadtteil Ciutad Vella liegt. Er bedient hauptsächlich Regional- und Fernzüge, die sich auf Strecken in Richtung der französischen Grenze konzentrieren.
Die Estació de Sants und Passeig de Gràcia liegen relativ nahe beieinander, etwa 2 Kilometer voneinander entfernt, während Barcelona França etwas weiter weg ist, ungefähr 1,5 Kilometer von Sants. Weitere kleinere Bahnhöfe sind Clot-Aragó, der regionale Dienste anbietet, und Montcada i Reixac-Manresa, der Gebiete außerhalb der Stadt mit Nahverkehrszügen bedient.