Bari es el principal nudo ferroviario de Apulia y una de las estaciones clave del sur de Italia en el corredor ferroviario adriático. La ciudad cuenta con Bari Centrale como su principal complejo ferroviario de pasajeros, con áreas separadas utilizadas por operadores nacionales, regionales, aeroportuarios y locales. Trenitalia e Italo gestionan los trenes de larga distancia, mientras que Ferrotramviaria y Ferrovie del Sud Est operan importantes conexiones regionales en torno a Bari.
Los trenes desde Bari incluyen servicios de alta velocidad Frecciarossa, trenes Intercity a lo largo de la costa adriática, servicios Regionale dentro de Apulia y trenes al aeropuerto operados por Ferrotramviaria. Bari Centrale es la principal estación de tren para salidas nacionales, mientras que la estación Bari Aeroporto conecta la red ferroviaria urbana con el Aeropuerto Bari Karol Wojtyla.
Las rutas ferroviarias desde Bari se dirigen al noroeste hacia Foggia, Pescara, Bolonia, Milán y Turín, al oeste hacia Roma y Nápoles, al sur hacia Brindisi y Lecce, y tierra adentro hacia Taranto y las localidades servidas por Ferrovie del Sud Est. Los trenes regionales también conectan Bari con ciudades costeras e interiores de Apulia como Barletta, Monopoli y Martina Franca. Reserva trenes desde y hacia Bari en línea en Rail Monsters.