The average train between Bari Airport and Milan takes 9h 14m and the fastest train takes 7h 45m. The train service runs several times per day from Bari Airport to Milan. The journey time may be longer on weekends and holidays; use the search form on this page to search for a specific travel date.
Trains run every 4 hours between Bari Airport and Milan. The earliest departure is at 5:38 AM in the morning, and the last departure from Bari Airport is at 11:23 PM which arrives into Milan at 12:45 PM. All services require a transfer at Bari Centrale and take an average of 9h 14m. The schedules shown below are for the next available departures.

8h 7m • 1 change

8h 27m • 1 change

9h 22m • 1 change

8h 32m • 1 change

8h 7m • 1 change

8h 27m • 1 change

9h 22m • 1 change

8h 32m • 1 change

8h 7m • 1 change

8h 27m • 1 change

9h 22m • 1 change

8h 32m • 1 change

8h 7m • 1 change

8h 27m • 1 change

9h 22m • 1 change

8h 32m • 1 change

8h 7m • 1 change

8h 27m • 1 change

9h 22m • 1 change

8h 32m • 1 change
Want to know about travelling from Bari Airport to Milan? We have put together a list of the most frequently asked questions from our users such as: What is the cheapest mode of transport? What is the quickest option? How much do tickets usually cost? and many more.
No, there is no direct train from Bari Airport to Milan. However, there are services departing from Bari Airport station and arriving at Milan station via Milano Centrale. The journey, including transfers, takes approximately 9h 14m.
Bari Airport to Milan train services, operated by Ferrotramviaria spa - Ferrovie del Nord Barese, depart from Bari Centrale station.
Bari Airport to Milan train services, operated by Ferrotramviaria spa - Ferrovie del Nord Barese, arrive at Milano Centrale station.
The distance between Bari Airport and Milan is 778.9 km. The road distance is 868 km.
Trenitalia Frecce operates a train from Bari Centrale to Milano Centrale hourly. Tickets cost €120–250 and the journey takes 7h 40m. Trenitalia Intercity also services this route every 3 hours.