There are 13 ways to get from Milan to Trani by train (Trenitalia), bus, night train, car, plane, or train
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train via Barletta
best- Take the train from Milano Centrale to Barlettatrain Fr
7h 26m€88–190Train to Milano Malpensa Airport, fly to Bari Karol Wojtyła Airport, train
cheapest- Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1train
- Fly from Milano Malpensa Airport (MXP) to Bari Karol Wojtyła Airport (BRI)plane MXP - BRI
- Take the train from Bari Centrale to Tranitrain
5h 27m€38–190Bus via San Giovanni Rotondo
- Take the bus from Milano, San Donato M3 to San Giovanni Rotondo - p.zza Europa-Uff.bus
- Take the bus from San Giovanni Rotondo to Andriabus 7191
13h 16m€60–106Night train
- Take the nighttrain from Milano Centrale to Traninighttrain Ini
9h 13m€70–130Drive 837.6 km
- Drive from Milan to Tranicar 837.6 km
7h 29m€136–196Train
- Take the train from Milano Centrale to Tranitrain Ic
9h 4m€85–160Bus
- Take the bus from Milano, San Donato M3 to Barlettabus 1521
14h 30m€87–128Fly Milan Linate Airport to Bari Karol Wojtyła Airport, train
- Fly from Milan Linate Airport (LIN) to Bari Karol Wojtyła Airport (BRI)plane LIN - BRI
- Take the train from Bari Centrale to Tranitrain
4h 50m€67–197Fly Milan Linate Airport to Foggia Gino Lisa Airport, train
- Fly from Milan Linate Airport (LIN) to Foggia Gino Lisa Airport (FOG)plane LIN - FOG
- Take the train from Foggia to Tranitrain
4h 47m€86–312Bus to Il Caravaggio International Airport, fly to Bari Karol Wojtyła Airport, train
- Take the bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airportbus
- Fly from Il Caravaggio International Airport (BGY) to Bari Karol Wojtyła Airport (BRI)plane BGY - BRI
- Take the train from Bari Centrale to Tranitrain
5h 39m€45–228Fly Milan Linate Airport to Brindisi Airport, train
- Fly from Milan Linate Airport (LIN) to Brindisi Airport (BDS)plane LIN - BDS
- Take the train from Brindisi to Bari Centraletrain
- Take the train from Bari Centrale to Tranitrain
5h 32m€74–218Train to Verona Villafranca Airport, fly to Bari Karol Wojtyła Airport, train
- Take the train from Milano Centrale to Verona Porta Nuovatrain
- Fly from Verona Villafranca Airport (VRN) to Bari Karol Wojtyła Airport (BRI)plane VRN - BRI
- Take the train from Bari Centrale to Tranitrain
6h 21m€81–296Fly Milan Linate Airport to Naples Airport, train
- Fly from Milan Linate Airport (LIN) to Naples Airport (NAP)plane LIN - NAP
- Take the train from Caserta stazione to Tranitrain
7h 55m€87–236
Milan to Trani by train
Comparing Your Travel Options
The cheapest way to get from Milan to Trani is to train and fly which costs €35 - €190 and takes 5h 27m.
The fastest way to get from Milan to Trani is to fly and train which takes 4h 47m and costs €85 - €320.
No, there is no direct bus from Milan to Trani. However, there are services departing from Milano, San Donato M3 and arriving at Trani - Stazione FF. SS. via San Giovanni Rotondo and Andria. The journey, including transfers, takes approximately 13h 16m.
Yes, there is an overnight train departing from Milano Centrale and arriving at Trani. This train operates every day. The journey takes approximately 9h 13m.
The distance between Milan and Trani is 816 km. The road distance is 837.6 km.
The best way to get from Milan to Trani without a car is to train via Barletta which takes 7h 26m and costs €85 - €190.
It takes approximately 7h 26m to get from Milan to Trani, including transfers.
Milan to Trani bus services, operated by Ferrovie Del Gargano, depart from Milano, San Donato M3 station.
Milan to Trani train services, operated by Trenitalia Frecce, depart from Milano Centrale station.
The best way to get from Milan to Trani is to train via Barletta which takes 7h 26m and costs €85 - €190. Alternatively, you can bus via San Giovanni Rotondo, which costs €60 - €110 and takes 13h 16m.
What companies run services between Milan, Italy and Trani, Italy?
Trenitalia Frecce operates a train from Milano Centrale to Barletta every 4 hours. Tickets cost €110–190 and the journey takes 7h 2m. Two other operators also service this route. Alternatively, you can take a bus from Milano, San Donato M3 to Trani - Stazione FF. SS. via San Giovanni Rotondo - p.zza Europa-Uff., San Giovanni Rotondo, and Andria in around 13h 16m.
- Website
- ryanair.com
Flights from Milano Malpensa Airport to Bari Karol Wojtyła Airport
- Ave. Duration
- 1h 40m
- When
- Every day
- Estimated price
- €23–160
Flights from Il Caravaggio International Airport to Bari Karol Wojtyła Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- €27–190
Flights from Verona Villafranca Airport to Bari Karol Wojtyła Airport
- Ave. Duration
- 1h 25m
- When
- Every day
- Estimated price
- €45–240
- Website
- ita-airways.com
Flights from Milan Linate Airport to Bari Karol Wojtyła Airport
- Ave. Duration
- 1h 29m
- When
- Every day
- Estimated price
- €55–170
Flights from Milan Linate Airport to Bari Karol Wojtyła Airport via Rome
- Ave. Duration
- 3h 35m
- When
- Every day
- Estimated price
- €55–170
Flights from Milan Linate Airport to Brindisi Airport
- Ave. Duration
- 1h 37m
- When
- Every day
- Estimated price
- €55–180
Flights from Milan Linate Airport to Brindisi Airport via Rome
- Ave. Duration
- 3h 50m
- When
- Every day
- Estimated price
- €55–180
Flights from Milan Linate Airport to Naples Airport
- Ave. Duration
- 1h 23m
- When
- Every day
- Estimated price
- €55–160
Flights from Milan Linate Airport to Naples Airport via Rome
- Ave. Duration
- 3h 22m
- When
- Tuesday to Friday
- Estimated price
- €55–160
- Website
- easyjet.com
Flights from Milano Malpensa Airport to Bari Karol Wojtyła Airport
- Ave. Duration
- 1h 42m
- When
- Every day
- Estimated price
- €23–160
Flights from Milan Linate Airport to Brindisi Airport
- Ave. Duration
- 1h 40m
- When
- Monday and Thursday
- Estimated price
- €35–110
- Website
- neosair.it
Flights from Milano Malpensa Airport to Bari Karol Wojtyła Airport
- Ave. Duration
- 1h 30m
- When
- Thursday
- Estimated price
- €130–360
- Website
- aeroitalia.com
Flights from Milan Linate Airport to Foggia Gino Lisa Airport
- Ave. Duration
- 1h 30m
- When
- Every day
- Estimated price
- €75–290
- Phone
- +39 06 5210550
- Website
- Trenitalia Frecce
Train from Milano Centrale to Barletta
- Ave. Duration
- 7h 2m
- Frequency
- Every 4 hours
- Estimated price
- €110–190
- Website
- Trenitalia Frecce
Train from Brindisi to Bari Centrale
- Ave. Duration
- 1h 2m
- Frequency
- Every 3 hours
- Estimated price
- €15–26
- Website
- Trenitalia Frecce
Train from Milano Centrale to Verona Porta Nuova
- Ave. Duration
- 1h 13m
- Frequency
- Hourly
- Estimated price
- €20–35
- Website
- Trenitalia Frecce
- Phone
- +39 06 68475475
- Website
- Trenitalia Intercity
Train from Milano Centrale to Barletta
- Ave. Duration
- 8h 55m
- Frequency
- 4 times a day
- Estimated price
- €85–160
- Website
- Trenitalia Intercity
Train from Milano Centrale to Trani
- Ave. Duration
- 9h 4m
- Frequency
- 4 times a day
- Estimated price
- €85–160
- Website
- Trenitalia Intercity
Train from Bari Centrale to Trani
- Ave. Duration
- 31 min
- Frequency
- Every 4 hours
- Estimated price
- €4–9
- Website
- Trenitalia Intercity
Train from Bari Centrale to Trani
- Ave. Duration
- 31 min
- Frequency
- Every 4 hours
- Estimated price
- €4–9
- Website
- Trenitalia Intercity
Train from Foggia to Trani
- Ave. Duration
- 37 min
- Frequency
- Every 4 hours
- Estimated price
- €8–16
- Website
- Trenitalia Intercity
Train from Bari Centrale to Trani
- Ave. Duration
- 31 min
- Frequency
- Every 4 hours
- Estimated price
- €4–9
- Website
- Trenitalia Intercity
Train from Brindisi to Bari Centrale
- Ave. Duration
- 1h 30m
- Frequency
- 4 times a day
- Estimated price
- €12–22
- Website
- Trenitalia Intercity
Train from Bari Centrale to Trani
- Ave. Duration
- 31 min
- Frequency
- Every 4 hours
- Estimated price
- €4–9
- Website
- Trenitalia Intercity
Train from Bari Centrale to Trani
- Ave. Duration
- 31 min
- Frequency
- Every 4 hours
- Estimated price
- €4–9
- Website
- Trenitalia Intercity
- Phone
- +39 06 8937 1892
- Website
- Italo Treno
Train from Milano Centrale to Barletta
- Ave. Duration
- 7h 46m
- Frequency
- Once daily
- Estimated price
- €95–160
- Website
- Italo Treno
Train from Milano Centrale to Trani
- Ave. Duration
- 7h 55m
- Frequency
- Once daily
- Estimated price
- €95–160
- Website
- Italo Treno
Train from Bari Centrale to Trani
- Ave. Duration
- 38 min
- Frequency
- Once daily
- Estimated price
- €5–9
- Website
- Italo Treno
Train from Bari Centrale to Trani
- Ave. Duration
- 38 min
- Frequency
- Once daily
- Estimated price
- €5–9
- Website
- Italo Treno
Train from Foggia to Trani
- Ave. Duration
- 41 min
- Frequency
- Once daily
- Estimated price
- €9–16
- Website
- Italo Treno
Train from Bari Centrale to Trani
- Ave. Duration
- 38 min
- Frequency
- Once daily
- Estimated price
- €5–9
- Website
- Italo Treno
Train from Bari Centrale to Trani
- Ave. Duration
- 38 min
- Frequency
- Once daily
- Estimated price
- €5–9
- Website
- Italo Treno
Train from Bari Centrale to Trani
- Ave. Duration
- 38 min
- Frequency
- Once daily
- Estimated price
- €5–9
- Website
- Italo Treno
Train from Caserta stazione to Trani
- Ave. Duration
- 2h 55m
- Frequency
- Once daily
- Estimated price
- €28–50
- Website
- Italo Treno
- Phone
- 06 3000
- Website
- Trenitalia ICN
Night train from Milano Centrale to Trani
- Ave. Duration
- 9h 13m
- Frequency
- Once daily
- Estimated price
- €70–130
- Website
- Trenitalia ICN
- Phone
- +39.06.5210550
- Website
- Trenitalia
Train from Bari Centrale to Trani
- Ave. Duration
- 39 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–7
- Website
- Trenitalia
Train from Bari Centrale to Trani
- Ave. Duration
- 39 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–7
- Website
- Trenitalia
Train from Foggia to Trani
- Ave. Duration
- 51 min
- Frequency
- Hourly
- Estimated price
- €9–14
- Website
- Trenitalia
Train from Bari Centrale to Trani
- Ave. Duration
- 39 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–7
- Website
- Trenitalia
Train from Brindisi to Bari Centrale
- Ave. Duration
- 1h 23m
- Frequency
- Hourly
- Estimated price
- €13–19
- Website
- Trenitalia
Train from Bari Centrale to Trani
- Ave. Duration
- 39 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–7
- Website
- Trenitalia
Train from Bari Centrale to Trani
- Ave. Duration
- 39 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–7
- Website
- Trenitalia
- Phone
- +39 02 7249 4494
- [email protected]
- Website
- Trenord
Train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Ave. Duration
- 43 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–6
- Website
- Trenord
- Phone
- +39 (0) 0882 - 228960
- Website
- ferroviedelgargano.com
Bus from Milano, San Donato M3 to San Giovanni Rotondo - p.zza Europa-Uff.
- Ave. Duration
- 9h 40m
- Frequency
- Twice daily
- Estimated price
- €50–100
- Schedules at
- ferroviedelgargano.com
- Phone
- +39 080 579 0211
- [email protected]
- Website
- sitasudtrasporti.it
Bus from San Giovanni Rotondo to Andria
- Ave. Duration
- 1h 40m
- Frequency
- 6 times a week
- Estimated price
- €5–8
- Schedules at
- sitasudtrasporti.it
Rome2Rio's guide to FlixBus
Contact DetailsContact Details
- Phone
- +49 30 300 137 300
- [email protected]
- Website
- Flixbus
Bus from Milano, San Donato M3 to Barletta
- Ave. Duration
- 12h 34m
- Frequency
- 6 times a week
- Estimated price
- €85–130
- Website
- Flixbus
- [email protected]
- Website
- TERRAVISION
Bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airport
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–23
- Website
- TERRAVISION
- Phone
- 035.319366
- [email protected]
- Website
- orioshuttle.com
Bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airport
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €11–15
- Schedules at
- orioshuttle.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
Want to know more about Flixbus?
Read the travel guide
Getting to Milan from the airport
Read the travel guide
Booking & Getting There
Milan to Trani bus services, operated by Ferrovie Del Gargano, arrive at San Giovanni Rotondo - p.zza Europa-Uff. station.
Milan to Trani train services, operated by Trenitalia Frecce, arrive at Barletta station.
Yes, the driving distance between Milan to Trani is 838 km. It takes approximately 7h 29m to drive from Milan to Trani.
Book your Milan to Trani train tickets online with Omio.
Book your Milan to Trani bus tickets online with Omio.
There are 1493+ hotels available in Trani.


















































