Planning
Milan to Puglia: Should You Fly or Take the Train?
Puglia sits right down in the heel of Italy, and Milan sits up at the very top, so this is one of the longest domestic trips you can make without leaving the country. The good news is that it is also one of the easiest, because you have a real choice between a quick flight, a long but comfortable train, and an overnight sleeper that saves you a hotel night. This guide walks you through every option honestly, so you can pick the one that actually suits your trip.
The quick answer
From Milan, flying is usually the smart choice. There are several direct flights a day to Bari (and often to Brindisi too), and the flight itself is only about 1 hour 15 minutes to 1 hour 45 minutes. The direct daytime train from Milano Centrale to Bari is genuinely comfortable, but it takes around 7 hours 40 minutes, so it eats a whole day. The one train worth choosing on purpose is the overnight sleeper, because you leave in the evening, sleep and arrive the next morning without paying for a hotel. Driving and the bus are both possible, but they are long. For most travellers coming from Milan, the answer is: fly, unless you specifically want the scenic or overnight train experience.

Flying from Milan (the smart choice)
Milan has three airports, and all of them are useful for Puglia. Malpensa (MXP) is the big international hub, Linate (LIN) is the small, central city airport that is quickest to reach, and Bergamo (BGY) is the low-cost base a little further out. Between them you get several direct flights a day to Bari, with carriers including Ryanair, ITA Airways and easyJet. Many days you can also fly direct to Brindisi (BDS), which is the better landing point if the Salento is your real destination.
The flying time is short, roughly 1 hour 15 minutes to 1 hour 45 minutes in the air depending on the exact route. A rough rule of thumb: ITA Airways tends to run from Linate, while Ryanair and easyJet lean on Malpensa and Bergamo. Book ahead for the best fares, travel with hand luggage only where you can, and remember to add the time it takes to reach the airport and clear security. Even with all that, flying still comes out well ahead of any land option on total travel time.
Once you touch down, see our hub guide on getting to Puglia for airport transfers and our Bari guide for what to do the moment you land.
The direct daytime train (long but comfortable)
There is a direct train from Milano Centrale all the way to Bari Centrale, and it is a lovely, low-stress way to travel if you have the time. You board in the centre of Milan, settle in, and roughly 7 hours 40 minutes later you step off in the centre of Bari, no airports or transfers involved. The high-speed trains are quiet and spacious, with a cafe car, power sockets and plenty of room to spread out.
The catch is simple: that is close to a full working day on a train. If you enjoy watching Italy scroll past the window, with the Adriatic coast appearing for the last stretch, it can be a genuine pleasure rather than a chore. But if your holiday time is tight, giving up a whole day to travel is a real cost. This option makes the most sense if you love train travel, want to avoid flying, or are building the journey itself into your trip.
The overnight sleeper train option
The most underrated choice on this route is the Intercity Notte, the overnight sleeper. You leave Milan in the evening, sleep in a couchette or a proper sleeper cabin and wake up in Puglia the next morning. Because the journey happens while you are asleep, it does not eat into your daylight hours the way the daytime train does, and it saves you one night of hotel costs into the bargain.
It is a genuinely charming way to arrive, and it appeals to travellers who want to skip a flight without losing a day. Book a private sleeper compartment if you want the best rest, or a couchette if you are watching the budget. Bring a few snacks and a bottle of water, keep valuables close, and you will roll into Puglia rested and ready to start your trip.
Driving
Driving from Milan to Puglia is a serious undertaking. The distance is around 880 km and the drive takes roughly 8 hours 20 minutes without stops, mostly down the motorway network past Bologna and along the Adriatic side of the country. As a single blast it is tiring, and it really only makes sense as a one-way road trip, ideally broken with an overnight stop somewhere like Bologna or Pescara.
Here is the honest part: you do not want a car for a big city like Milan, and you do not need one to reach Puglia. What you may want is a car once you are in Puglia, where public transport thins out between the smaller towns. For most people the better plan is to fly or take the train, then pick up a hire car locally. Our guide to renting a car in Puglia covers how to do that without the stress.
By bus
The bus is the cheapest way south, and also the slowest. Coaches from Milan to Bari take roughly 11 to 13 hours, and most of them run overnight, leaving in the evening and arriving the following morning. Modern coaches come with wifi, power sockets and reclining seats, so it is more comfortable than it sounds, but it is still a very long stretch in a seat.
Choose the bus if budget is your absolute priority and you do not mind sleeping upright. For most travellers the overnight sleeper train covers the same overnight, money-saving idea with far more comfort, so it is usually the better version of this plan.
Getting beyond Bari once you land
Bari is the natural gateway, but it is rarely the final stop. From the airport and the central station, onward connections fan out across the region. If you are heading to the Salento, trains and buses run down to Lecce, the best base in the deep south, and Brindisi airport can be the smarter landing point for that corner. For the classic whitewashed towns and the trulli, aim for the Valle d’Itria: Ostuni, the White City on its hill and Alberobello with its famous cone-roofed trulli houses. And no first trip is complete without Polignano a Mare, perched on its dramatic sea cliffs just a short hop south of Bari.
To tie it all together into a route, our Puglia itinerary shows how to link these towns without backtracking.
Which should you choose?
Here is the whole decision in one table.
| Option | Time | Cost feel | Best for |
|---|---|---|---|
| Fly | About 1h15 to 1h45 in the air | Low to moderate if booked ahead | Almost everyone, fastest by far |
| Direct daytime train | About 7h40 | Moderate | Train lovers who have a day to spare |
| Overnight sleeper train | Evening to next morning | Moderate, saves a hotel night | Skipping a flight without losing a day |
| Drive | About 8h20, roughly 880 km | Higher with fuel and tolls | A one-way road trip with stops |
| Bus | About 11 to 13 hours | Cheapest | Tight budgets, overnight travel |
In short: fly if you value your time, take the sleeper if you want the romance of arriving by train without losing a day, and take the daytime train only if the journey itself is part of the fun. Whatever you choose, once you are down there you will want to make the most of it, so check the best time to visit Puglia before you lock in your dates.
Milan to Puglia FAQ
Is it better to fly or take the train from Milan to Puglia?
For most people, flying wins on time, with several direct flights a day to Bari and a flight of under two hours. The train is more comfortable and central, but the daytime service takes around 7 hours 40 minutes. The overnight sleeper is the best compromise if you want to travel by rail without losing a day.
How long is the direct train from Milan to Bari?
The direct daytime train from Milano Centrale to Bari Centrale takes around 7 hours 40 minutes. It is comfortable and runs straight through, but it does use up most of a day.
Which Milan airport is best for flights to Puglia?
All three work. Linate is the most central and quickest to reach, Malpensa is the large hub, and Bergamo is the low-cost base. Your choice usually comes down to which airline and time slot suits you, since Ryanair, ITA Airways and easyJet spread across the three.
Should I fly into Bari or Brindisi?
Bari is the main gateway and best for the north of the region and the trulli area. Brindisi is often the smarter choice if the Salento and Lecce are your priority, as it puts you closer to the deep south.
Do I need a car in Puglia?
Not to get there, but usually yes to explore. Trains and buses link the main towns, but a hire car makes the smaller villages and countryside far easier. See our guide on where to stay in Puglia to plan a base that fits how you want to get around.
How far is Puglia from Milan?
Milan to Bari, the main gateway to Puglia, is about 880 km by road, a long drive of roughly 8 to 9 hours up the A14 Adriatic motorway. Flying is far quicker, with direct flights to Bari in under two hours, while the direct daytime train takes around 7 hours 40 minutes.
Raised in the province of Brindisi, 30 years in Puglia. About this site