Travel Information
Compare train, bus, and flight for Gravina in Puglia to Milan
Omio recommends booking the bus as it is the most popular option from Gravina in Puglia to Milan among Omio's users. If you are prioritising price, take the bus, with an average ticket price of CHF 78 For those with little time, consider booking a flight, which has an average total journey time of 4h 2m. If you are seeking to minimise your carbon footprint, the train is your best option, with estimated CO2 emissions of 0.2 - 0.7kg. Average ticket prices depend on the travel mode: a bus costs an average of CHF 78, while a flight costs an average of CHF 216.
Distance: 485 miles (781 km)
Compare bus with
Most popular Bus | Train | Flight | Driving |
|---|---|---|---|
CHF 78 Average price Cheapest | CHF 104 Average price | CHF 216 Average price | CHF 206 Average price (fuel + tolls) |
12h 51m Average total duration 12h 21m Onboard + 30m Additional time* | 8h 55m Average total duration 8h 25m Onboard + 30m Additional time* | 4h 2m Average total duration Fastest 2h 2m Onboard + 2h 0m Additional time* | 9h 14m Average total duration (door-to-door) |
0.8 - 2.0kg CO2 emissions | 0.2 - 0.7kg CO2 emissions Lowest | 2.3 - 4.7kg CO2 emissions | - CO2 emissions |
![]() Most popular bus company | ![]() Most popular train company | ![]() Most popular airline | Your own car or car rental |
Direct Options | Direct Options | Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
Compare ways to travel from Gravina in Puglia to Milan
Compare the available ways to get from Gravina in Puglia to Milan, with the key details around price, speed, convenience, and direct service.
This is compared to other travel options from Gravina in Puglia to Milan:
A bus is CHF 26 less than a train for this route with tickets for a train from Gravina in Puglia to Milan costing on average CHF 104.
A bus is CHF 138 less than a flight for this route with tickets for a flight from Gravina in Puglia to Milan costing on average CHF 216.
Other travel options to Milan take longer:
Train takes on average 8h 55m.
Bus takes on average 12h 51m.
Tickets start at around CHF 78 compared to roughly CHF 206 in fuel and tolls — a saving of about CHF 128. The journey takes 12h 21m versus 9h 14m by car, so you'll arrive a bit later, but you can use the time productively rather than spending it behind the wheel. No parking to sort, no fuel stops, and most coaches have Wi-Fi and power outlets.
Driving is worth considering if you're on a tight schedule, travelling as a group (where fuel costs split several ways), or want the flexibility to stop along the way.
Travel optionsfrom Gravina in Puglia to Milan
How to get from Gravina in Puglia to Milan by train, bus or flight.
Our recommendation
The best way to travel from Gravina in Puglia to Milan is by taking a bus because it’s the best combination of price and speed.
216 · 2006:55 AM 11h45 Gravina in Puglia, Corso Giuseppe di Vittorio (Gravina in Puglia) 6:40 PM Milano, San Donato - Settore B (Viale Giuseppe Impastato) CHF 54 1 One-way 1 transfer
Cheapest
216 · 2006:55 AM 11h45 Gravina in Puglia, Corso Giuseppe di Vittorio (Gravina in Puglia) 6:40 PM Milano, San Donato - Settore B (Viale Giuseppe Impastato) CHF 54 1 One-way 1 transfer
Fastest
XZ22268:20 AM 1h30 Foggia Gino Lisa Airport 9:50 AM Milan Linate Airport CHF 159 1 One-way 0 transfers
Other options
Autobus BA217 · Regionale 19836+
Intercity 6149:58 AM 13h42 Gravina In Puglia 11:40 PM Milan Centrale CHF 69 1 One-way 2 transfers
Autobus BA217 · Regionale 19836+
Intercity 6149:58 AM 13h42 Gravina In Puglia 11:40 PM Milan Centrale CHF 69 1 One-way 2 transfers
Autobus BA223+
InterCityNotte 7585:48 PM 14h32 Gravina In Puglia 8:20 AM Milan Centrale CHF 73 1 One-way 1 transfer
216 · 2006:55 AM 12h30 Gravina in Puglia, Corso Giuseppe di Vittorio (Gravina in Puglia) 7:25 PM Milano, Autostazione Lampugnano CHF 54 1 One-way 1 transfer
130 · 10110:40 PM 11h00 Gravina in Puglia, Corso Giuseppe di Vittorio (Gravina in Puglia) 9:40 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) CHF 77 1 One-way 1 transfer
130 · 10110:40 PM 11h40 Gravina in Puglia, Corso Giuseppe di Vittorio (Gravina in Puglia) 10:20 AM Milano, Autostazione Lampugnano CHF 77 1 One-way 1 transfer
U235269:45 PM 1h35 Bari Palese Airport 11:20 PM Milan Malpensa Airport CHF 84 1 One-way 0 transfers
FR 27711:05 PM 1h40 Bari Palese Airport 12:45 AM Milan Malpensa Airport CHF 96 1 One-way 0 transfers
FR 36546:05 AM 1h30 Bari Palese Airport 7:35 AM Milan Bergamo Orio al Serio Airport CHF 161 1 One-way 0 transfers
Find all the dates and times for this journey by train, bus, flight, and ferry .
Compare prices and tickets Prices for trains, buses and flights
Compare train, bus, and flight prices over the next three weeks. See the best deals at a glance, find the lowest fares, and choose the option that fits your budget.
More than 1,000 travel companies trust us to sell their tickets all in one place.
FAQs: Travel from Gravina in Puglia to Milan
Travel to Milan easily. Whether you want fast, cheap or something entirely different, our travel experts have collected everything you need to know so you can find the best option from Gravina in Puglia to Milan.

This is compared to other travel options from Gravina in Puglia to Milan:
A bus is CHF 26 less than a train for this route with tickets for a train from Gravina in Puglia to Milan costing on average CHF 104.
A bus is CHF 138 less than a flight for this route with tickets for a flight from Gravina in Puglia to Milan costing on average CHF 216.
Other travel options to Milan take longer:
Train takes on average 8h 55m.
Bus takes on average 12h 51m.
- Around 17 flights per day.
- Around 8 buses per day.
- Around 2 trains per day.
However, we recommend checking specific travel dates for your route between Gravina in Puglia and Milan as scheduled services by train, bus, and flight can vary by season or day of the week.
- Trains mostly depart from Molfetta station and arrive in Milan Centrale.
- Buses mostly depart from Gravina in Puglia, Corso Giuseppe di Vittorio (Gravina in Puglia) and arrive in Milano, Autostazione Lampugnano.
- Flights mostly depart from Bari Palese Airport and arrive in Milan Linate Airport.
- Travel with ITA, Malta Air, easyJet, BA Euroflyer, Luxair, Aeroitalia, Ryanair, Eurowings, Neos Air, Avion Express Malta to go to Milan by flight.
- Travel with Marino Autolinee, FlixBus, Infobus, Itabus to go to Milan by bus.
- Travel with Italo to go to Milan by train.
- 10 direct flights per day with ITA, Malta Air, easyJet, Aeroitalia, Ryanair, Neos Air.
- 2 direct buses per day with Marino Autolinee, Infobus, Itabus.
- 2 direct trains per day with Italo.
Travelling from Gravina in Puglia to Milan: related information
Here are some other resources that might have the information you need


