There are 10 ways to get from Bari to Milan by plane, train (Trenitalia), bus, night train, train, car, or rideshare
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly to Milan Linate Airport
best- Fly from Bari Karol Wojtyła Airport (BRI) to Milan Linate Airport (LIN)plane BRI - LIN
1h 54m€95–179Rideshare
cheapest- Take the rideshare from Bari to Milan878.1 km
10h 3m€49Train via Reggio Emilia (Trenitalia)
- Take the train from Bari Centrale to Reggio Emilia Avtrain Fr
- Take the train from Reggio Emilia Av to Milano Centraletrain Fr
7h 31m€127–243Bus
- Take the bus from Bari to Milano, San Donato M3bus N435 / ...
11h€60–110Night train
- Take the night train from Bari Centrale to Milano Centralenighttrain Ini
9h 30m€80–160Fly to Milano Malpensa Airport, train
- Fly from Bari Karol Wojtyła Airport (BRI) to Milano Malpensa Airport (MXP)plane BRI - MXP
- Take the train from Malpensa Aeroporto T1 to Milano Porta Garibalditrain
2h 48m€73–182Fly to Il Caravaggio International Airport
- Fly from Bari Karol Wojtyła Airport (BRI) to Il Caravaggio International Airport (BGY)plane BRI - BGY
2h 42m€86–226Train
- Take the train from Bari Centrale to Milano Centraletrain Fr
7h 40m€85–240Bus via Milano
- Take the bus from Bari to Milanobus Bari
16h 24m€56–104Drive 880.9 km
- Drive from Bari to Milancar 880.9 km
7h 51m€136–196
Bari to Milan by train (Trenitalia)
Questions & Answers
The cheapest way to get from Bari to Milan is to rideshare which costs €49 and takes 10h 3m.
The fastest way to get from Bari to Milan is to fly which takes 1h 54m and costs €95 - €180.
Yes, there is a direct bus departing from Bari and arriving at Milano, San Donato M3. Services depart once daily, and operate every day. The journey takes approximately 11h.
Yes, there is an overnight train departing from Bari Centrale and arriving at Milano Centrale. This train operates every day. The journey takes approximately 9h 30m.
The distance between Bari and Milan is 791 km. The road distance is 880.9 km.
The best way to get from Bari to Milan without a car is to train via Reggio Emilia which takes 7h 31m and costs €120 - €250.
It takes approximately 1h 54m to get from Bari to Milan, including transfers.
Bari to Milan bus services, operated by FlixBus, depart from Bari station.
Bari to Milan train services, operated by Trenitalia Frecce, depart from Bari Centrale station.
The best way to get from Bari to Milan is to fly which takes 1h 54m and costs €95 - €180. Alternatively, you can train via Reggio Emilia, which costs €120 - €250 and takes 7h 31m, you could also bus, which costs €60 - €110 and takes 11h.
What companies run services between Bari, Italy and Milan, Italy?
ITA Airways flies from Bari Karol Wojtyła Airport (BRI) to Milan Linate Airport (LIN) every 3 hours. Alternatively, you can take a train from Bari Centrale to Milano Centrale via Reggio Emilia Av in around 7h 31m.
- Website
- ryanair.com
Flights from Bari Karol Wojtyła Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 40m
- When
- Every day
- Estimated price
- €35–120
Flights from Bari Karol Wojtyła Airport to Il Caravaggio International Airport
- Ave. Duration
- 1h 30m
- When
- Every day
- Estimated price
- €40–140
Flights from Bari Karol Wojtyła Airport to Il Caravaggio International Airport via Tirana
- Ave. Duration
- 3h 35m
- When
- Monday
- Estimated price
- €40–140
- Website
- easyjet.com
Flights from Bari Karol Wojtyła Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- €26–110
- Website
- ita-airways.com
Flights from Bari Karol Wojtyła Airport to Milan Linate Airport
- Ave. Duration
- 1h 26m
- When
- Every day
- Estimated price
- €50–120
Flights from Bari Karol Wojtyła Airport to Milan Linate Airport via Rome
- Ave. Duration
- 3h 38m
- When
- Every day
- Estimated price
- €50–120
- Website
- skyalps.com
Flights from Bari Karol Wojtyła Airport to Il Caravaggio International Airport via Mostar
- Ave. Duration
- 3h 30m
- When
- Friday
- Estimated price
- €190–360
- Phone
- +39 06 68475475
- Website
- trenitalia.com
Train from Bari Centrale to Reggio Emilia Av
- Ave. Duration
- 6h 5m
- Frequency
- Every 4 hours
- Estimated price
- €100–200
- Schedules at
- trenitalia.com
Train from Reggio Emilia Av to Milano Centrale
- Ave. Duration
- 50 min
- Frequency
- Hourly
- Estimated price
- €22–45
- Schedules at
- trenitalia.com
Train from Bari Centrale to Milano Centrale
- Ave. Duration
- 7h 40m
- Frequency
- Every 4 hours
- Estimated price
- €120–240
- Schedules at
- trenitalia.com
- Phone
- 06 3000
- Website
- trenitalia.com
Night train from Bari Centrale to Milano Centrale
- Ave. Duration
- 9h 30m
- Frequency
- Twice daily
- Estimated price
- €80–160
- Website
- https://www.trenitalia.com/en.html
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- trenord.it
Train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
- Ave. Duration
- 44 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
- Phone
- +39 06 68475475
- Website
- trenitalia.com
Train from Bari Centrale to Milano Centrale
- Ave. Duration
- 9h 35m
- Frequency
- 4 times a day
- Estimated price
- €85–190
- Website
- https://www.trenitalia.com/en.html
- Phone
- +39 06 8937 1892
- Website
- italotreno.it
Train from Bari Centrale to Milano Centrale
- Ave. Duration
- 8h 40m
- Frequency
- Once daily
- Estimated price
- €110–220
- Website
- https://www.italotreno.it/en
Rome2Rio's guide to FlixBus
Contact Details
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- https://www.flixbus.fr
Bus from Bari to Milano, San Donato M3
- Ave. Duration
- 11h
- Frequency
- Once daily
- Estimated price
- €60–110
- Website
- https://www.flixbus.co.uk
- Phone
- +39 06 88 93 82 32
- Website
- itabus.it
Bus from Bari to Milano
- Ave. Duration
- 16h 5m
- Frequency
- Every 4 hours
- Estimated price
- €55–110
- Website
- https://www.itabus.it/en/home
- Phone
- +3 318 576 2228
- Website
- blablacar.com
Rideshare from Bari to Milan
- Ave. Duration
- 10h 3m
- Frequency
- 4 times a day
- Estimated price
- €49
- Schedules at
- blablacar.com
Want to know more about travelling around Italy
Rome2Rio's Travel Guide series provide vital information for the global traveller. Filled with useful and timely travel information, the guides answer all the hard questions - such as 'How do I buy a ticket?', 'Should I book online before I travel? ', 'How much should I expect to pay?', 'Do the trains and buses have Wifi?' - to help you get the most out of your next trip.
Related travel guides
Italy Travel Guides
Read the travel guide
Getting to Milan from the airport
Read the travel guide
Want to know more about Flixbus?
Read the travel guide
More Questions & Answers
Bari to Milan bus services, operated by FlixBus, arrive at Milano, San Donato M3 station.
Bari to Milan train services, operated by Trenitalia Frecce, arrive at Reggio Emilia Av station.
Yes, the driving distance between Bari to Milan is 881 km. It takes approximately 7h 51m to drive from Bari to Milan.
Book your Bari to Milan train tickets online with Omio.
Book your Bari to Milan bus tickets online with Omio and FlixBus.
There are 12902+ hotels available in Milan.
Check out Blablacar's carpooling service for rideshare options between Bari and Milan. A great option if you don't have a driver's licence or want to avoid public transport.






























