There are 11 ways to get from Apulia to Milan by plane, train, bus, rideshare or car
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2rio's travel planner.
Recommended option
Fly Bari to Milan Linate • 3h 1m
$57 - $278
Cheapest option
Bus Marino Autolinee • 10h 22m
$33 - $83
9 alternative options
Fly Brindisi to Milan Linate • 3h 9m
$62 - $283
Fly Bari to Milan Malpensa • 3h 32m
$63 - $242
Fly Brindisi to Milan Malpensa • 3h 40m
$68 - $357
Fly Bari to Milan Bergamo • 3h 55m
$41 - $287
Fly Brindisi to Milan Bergamo • 3h 58m
$36 - $282
Train • 6h 45m
$95 - $140
Bus Baltour • 14h 16m
$45 - $63
Rideshare • 10h 3m
$56
Drive • 7h 52m
$130 - $200
Questions & Answers
The cheapest way to get from Apulia to Milan is to bus which costs 28€ - 75€ and takes 10h 22m.
The quickest way to get from Apulia to Milan is to fly which costs 45€ - 250€ and takes 3h 1m.
No, there is no direct bus from Apulia to Milan. However, there are services departing from Bari - L.Go Sorrentino Dietro Staz. Fs and arriving at via verziere via san donato m3. The journey, including transfers, takes approximately 14h 16m.
Yes, there is a direct train departing from Bari Centrale and arriving at Milano Centrale. Services depart every four hours, and operate every day. The journey takes approximately 6h 45m.
The distance between Apulia and Milan is 781 km. The road distance is 881.8 km.
The best way to get from Apulia to Milan without a car is to train which takes 6h 45m and costs 80€ - 120€.
It takes approximately 3h 1m to get from Apulia to Milan, including transfers.
Apulia to Milan bus services, operated by Baltour, depart from Bari - L.Go Sorrentino Dietro Staz. Fs station.
Apulia to Milan train services, operated by Trenitalia Frecce, depart from Bari Centrale station.
The best way to get from Apulia to Milan is to fly which takes 3h 1m and costs 45€ - 250€. Alternatively, you can train, which costs 80€ - 120€ and takes 6h 45m, you could also bus, which costs 28€ - 75€ and takes 10h 22m.

- Distance: 488.1 miles
- Duration: 3h 1m
What companies run services between Apulia, Italy and Milan, Italy?
Alitalia flies from Bari to Milan every 2 hours. Alternatively, Trenitalia Frecce operates a train from Bari to Milan every 4 hours. Tickets cost $95 - $140 and the journey takes 6h 45m.

- Website
- alitalia.com
Flights from Bari to Milan Linate
- Ave. Duration
- 1h 25m
- When
- Every day
- Estimated price
- $55 - $500
Flights from Bari to Milan Linate via Rome
- Ave. Duration
- 3h 21m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
- Estimated price
- $55 - $500
Flights from Brindisi to Milan Linate
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- $75 - $550
Flights from Brindisi to Milan Linate via Rome
- Ave. Duration
- 3h 33m
- When
- Every day
- Estimated price
- $75 - $550
Flights from Bari to Milan Malpensa
- Ave. Duration
- 1h 25m
- When
- Monday, Tuesday, Wednesday, Friday and Sunday
- Estimated price
- $230 - $1,500
Flights from Bari to Milan Malpensa via Rome
- Ave. Duration
- 3h 23m
- When
- Every day
- Estimated price
- $230 - $1,500
Flights from Brindisi to Milan Malpensa
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- $290 - $1,800
Flights from Brindisi to Milan Malpensa via Rome
- Ave. Duration
- 3h 33m
- When
- Every day
- Estimated price
- $290 - $1,800
Flights from Bari to Milan Bergamo via Rome
- Ave. Duration
- 3h 35m
- When
- Every day
- Estimated price
- $85 - $470
Flights from Brindisi to Milan Bergamo via Rome
- Ave. Duration
- 3h 40m
- When
- Every day
- Estimated price
- $95 - $550

- Website
- ryanair.com
Flights from Bari to Milan Bergamo
- Ave. Duration
- 1h 37m
- When
- Every day
- Estimated price
- $35 - $370
Flights from Bari to Milan Bergamo via Budapest
- Ave. Duration
- 4h 5m
- When
- Friday
- Estimated price
- $35 - $370
Flights from Brindisi to Milan Bergamo
- Ave. Duration
- 1h 40m
- When
- Every day
- Estimated price
- $40 - $460

- Website
- easyjet.com
Flights from Bari to Milan Malpensa
- Ave. Duration
- 1h 33m
- When
- Every day
- Estimated price
- $55 - $390
Flights from Brindisi to Milan Malpensa
- Ave. Duration
- 1h 40m
- When
- Monday, Wednesday, Thursday, Friday, Saturday and Sunday
- Estimated price
- $80 - $650

- Website
- neosair.it
Flights from Brindisi to Milan Malpensa
- Ave. Duration
- 1h 45m
- When
- Sunday
- Estimated price
- $110 - $650

The primary train operator in Italy, Trenitalia was created in the year 2000. Trenitalia offers national rail connections in Italy as well as international connections to Austria, France, Germany and Switzerland. The company operates regional and long-distance trains, as well as high-speed trains called Frecce that travel on specialised tracks on speeds of up to 360km/h. Trenitalia tickets are available online, in stations across the country or from many travel agents that offer bookings.
Contact Details
- Phone
- +39 06 68475475
- Website
- trenitalia.com
Train from Bari Centrale to Milano Centrale
- Ave. Duration
- 6h 45m
- Frequency
- Every 4 hours
- Estimated price
- $95 - $140
- Website
- orario.trenitalia.com

- Phone
- +39 080 3112335
- info@marinobus.it
- Website
- marinobus.it
Bus from Bari to Milano S. Donato
- Ave. Duration
- 10h 5m
- Frequency
- 3 times a day
- Estimated price
- $62
- Website
- Marino Autolinee

One of Europe’s leading bus companies, Flixbus serves over 1400 destinations, in 26 countries including Germany, France, Italy, Austria, the Netherlands, Croatia, Spain, and across Scandinavia and central and eastern Europe. Founded in 2012, Flixbus’ extensive network connects cities with approximately 200,000 trips, with buses often departing every 30 minutes. One of the most affordable ways to get around Europe (and expanding soon into the US), a Flixbus journey is cost-effective, well-connected, comfortable and safe.
Rome2rio's guide to FlixBus
Contact Details
- Phone
- +49 1807 123 99 123
- info@flixbus.de
- Website
- flixbus.de
Bus from Bari to Milan, Milan
- Ave. Duration
- 11h 50m
- Frequency
- Twice daily
- Estimated price
- $45 - $85
- Website
- flixbus.co.uk

As the bus subsidiary of French railway SNCF, Ouibus offers comfortable, eco-friendly coaches serving 35 French cities and 11 European cities at affordable fares. Ouibus journeys are safe and comfortable, with the four-star coaches offering power outlets, restrooms and WiFi. All Ouibus stations are located close to town centres for easy access to public transport. Getting on one of the 130 daily journeys is easy - electronic travel documents include your ticket and a personalised mini-guide with handy information.
Contact Details
- Phone
- 0890715298
- Website
- ouibus.com
Bus from Bari to Milan San Donato
- Ave. Duration
- 11h 50m
- Frequency
- Once daily
- Estimated price
- $30 - $45
- Website
- Ouibus

- Phone
- +39 0861 1991900
- info@baltour.it
- Website
- flixbus.it
Bus from Bari - L.Go Sorrentino Dietro Staz. Fs to Milano - Autostazione San Donato
- Ave. Duration
- 13h 25m
- Frequency
- 3 times a day
- Estimated price
- $40 - $65
- Website
- Baltour

A ridesharing platform with 40 million users, Blablacar gives you access to destinations without worrying about on-the-road chaos. The basic idea is that you carpool with locals who are already planning to drive your route and have space in their car. With some flexibility you’ll get to your destination – often faster and cheaper than other means. On the website or app, enter your departure and arrival points and your date of travel, sift through the profiles of drivers who’ve posted pre-planned drives and find one whose timing and preferences match yours. Request to join the ride, wait be accepted, and pay your share of the set price.
Rome2rio's guide to BlaBlaCar
Contact Details
- Website
- blablacar.com
Rideshare from Bari to Milan
- Ave. Duration
- 10h 3m
- Frequency
- 4 times a day
- Estimated price
- $56
- Book at
- blablacar.co.uk
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
Travel inspiration and top planning tips for getting around Italy.
Read the travel guideGetting to Milan from the airport
Get the details in Rome2rio’s airport-to-city travel guide
Read the travel guideWant to know more about Flixbus?
Rome2rio’s guide has all the details
Read the travel guideIs ride-sharing platform BlaBlaCar right for you?
Don't have a car, or can't get there on public transportation? This carpooling platform could be your answer.
Read the travel guideMore Questions & Answers
The quickest flight from Bari Airport to Milan Linate Airport is the direct flight which takes 1h 25m.
Apulia to Milan bus services, operated by Baltour, arrive at Milano - Autostazione San Donato station.
Apulia to Milan train services, operated by Trenitalia Frecce, arrive at Milano Centrale station.
Yes, the driving distance between Apulia to Milan is 882 km. It takes approximately 7h 52m to drive from Apulia to Milan.
Alitalia offers flights from Bari Airport to Milan Linate Airport.
Book your Apulia to Milan train tickets online with Rome2rio.
There are 2115+ hotels available in Milan. Prices start at $57 USD per night.
Check out Blablacar's carpooling service for rideshare options between Apulia and Milan. A great option if you don't have a driver's licence or want to avoid public transport.
The best way to get from Apulia to Bari Airport is to train which takes 12m and costs 5€.