- Must visit
Museo di Civiltà Preclassiche della Murgia Meridionale
Main civic museum presenting local archaeology, art, and history. It is the best introduction to Ostuni’s development from prehistory to today.
Flights from Milan to Ostuni depart on average 64 times per day, taking around 1h 44m. Cheap flight tickets for this journey start at $21 (€17) but you can travel from only $16 (€13) by bus.
There are 18 flights per day. The earliest flight runs at 00:20, the last at 23:55. The fastest flight covers the 534 miles (860 km) distance in 1h 30m. June is the cheapest month to fly.
Distance 534 miles (860 km) |
Average flight duration 1h 44m |
Cheapest ticket price $21 (€17) |
Flights per day 64 |
Direct flights 18 |
Fastest flight 1h 30m |
First flight 12:20 AM |
Last flight 11:55 PM |
Cheapest Month Jun |
Cheapest Day Sun |
High Season Jul - Sep |
Low Season Jan - Mar |
Busiest Day Thu |
Least Busy Day Mon |
Best time to book 77 days |
Cheapest price
$58
Average price
$191
Fastest journey
1 h 25 m
Average duration
1 h 27 m
Flights per day
58
Distance
860 km
The best way to find a cheap flight ticket from Milan to Ostuni is to book your journey as far in advance as possible and to avoid traveling at rush hour.
The average ticket from Milan to Ostuni will cost around $191 if you buy it on the day, but the cheapest tickets can be found for only $58.
Of the 58 flights that leave Milan for Ostuni onWed, Jul 22, 20 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
On Wed, Jul 22 the direct flights cover the 860 km distance in an average of 1 h 27 m but if you time it right, some flights will get you there in just 1 h 25 m .
On Wed, Jul 22 the longest flights will take 1 h 30 m and usually involve a change or two along the way, but you might be able to save a few pennies if you’re on a budget.
FR 3653
FR 4132
FR 278
FR 4658
U23531
AZ1649
AZ1655
AZ1639
AZ1671
AZ1647Omio recommends booking the train as it is the most popular option from Milan to Ostuni among Omio's users. If you are prioritising price take the bus with prices starting from $16. For those with little time consider booking a flight which can get you there in 1h 44m. In case you are seeking to minimise your carbon footprint the train is your best bet as it emits only 0.3 - 0.8kg. The ticket price range depends on the travel mode: a bus costs an average of $16, and a train costs an average of $31.
Distance: 534 miles (860 km)
| Flight | Most popular Train | Bus | Driving |
|---|---|---|---|
$75 Average price | $80 Average price | $60 Average price Cheapest | $286 Average price (fuel + tolls) |
4h 44m Average total duration Fastest 1h 44m Onboard + 3h 0m Additional time* | 10h 23m Average total duration 9h 53m Onboard + 30m Additional time* | 15h 25m Average total duration 14h 55m Onboard + 30m Additional time* | 9h 57m Average total duration (door-to-door) |
2.6 - 5.2kg CO2 emissions | 0.3 - 0.8kg CO2 emissions Lowest | 0.9 - 2.1kg CO2 emissions | - CO2 emissions |
![]() Most popular airline | ![]() Most popular train company | ![]() Most popular bus company | 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.
This is compared to other travel options from Milan to Ostuni:
A bus is $16 (€13) less than a flight for this route with tickets for a flight from Milan to Ostuni costing on average $75 (€62).
A bus is $20 (€16) less than a train for this route with tickets for a train from Milan to Ostuni costing on average $80 (€66).
Other travel options to Ostuni take longer:
Train takes on average 9h 53m.
Bus takes on average 14h 55m.
The table below shows live departures for Milan to Ostuni flights for today, Tuesday, July 21. You can also manually refresh the results below to see updated flight journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
AZ2045 · AZ1627+ BRINDISI AIRPORT LINK AP51 · Regionale Veloce 4438 | 11:30 AM Milan Linate Airport | 7h36 | 7:06 PM Ostuni station | 3 transfers | |
AZ2045 · AZ1627+ BRINDISI AIRPORT LINK AP55 · Regionale 4440 | 11:30 AM Milan Linate Airport | 8h25 | 7:55 PM Ostuni station | 3 transfers | |
AZ2045 · AZ1627+ BRINDISI AIRPORT LINK AP59 · Regionale Veloce 4442 | 11:30 AM Milan Linate Airport | 9h36 | 9:06 PM Ostuni station | 3 transfers | |
AZ2045 · AZ1627 | 11:30 AM Milan Linate Airport | 4h40 | 4:10 PM Brindisi Airport | 1 transfer | |
FR 859 | 11:50 AM Milan Bergamo Orio al Serio Airport | 1h40 | 1:30 PM Brindisi Airport | 0 transfersDirect | |
AZ2133 · AZ1627 | 1:00 PM Milan Linate Airport | 3h10 | 4:10 PM Brindisi Airport | 1 transfer | |
AZ2133 · AZ1627+ BRINDISI AIRPORT LINK AP59 · Regionale Veloce 4442 | 1:00 PM Milan Linate Airport | 8h06 | 9:06 PM Ostuni station | 3 transfers | |
AZ2133 · AZ1627+ BRINDISI AIRPORT LINK AP55 · Regionale 4440 | 1:00 PM Milan Linate Airport | 6h55 | 7:55 PM Ostuni station | 3 transfers | |
AZ2133 · AZ1623 | 1:00 PM Milan Linate Airport | 5h25 | 6:25 PM Brindisi Airport | 1 transfer | |
AZ2133 · AZ1627+ BRINDISI AIRPORT LINK AP51 · Regionale Veloce 4438 | 1:00 PM Milan Linate Airport | 6h06 | 7:06 PM Ostuni station | 3 transfers | |
AZ1641+ BRINDISI AIRPORT LINK AP59 · Regionale Veloce 4442 | 2:40 PM Milan Linate Airport | 6h26 | 9:06 PM Ostuni station | 2 transfers | |
AZ1641 | 2:40 PM Milan Linate Airport | 1h40 | 4:20 PM Brindisi Airport | 0 transfersDirect | |
AZ1641+ BRINDISI AIRPORT LINK AP55 · Regionale 4440 | 2:40 PM Milan Linate Airport | 5h15 | 7:55 PM Ostuni station | 2 transfers | |
AZ1641+ BRINDISI AIRPORT LINK AP51 · Regionale Veloce 4438 | 2:40 PM Milan Linate Airport | 4h26 | 7:06 PM Ostuni station | 2 transfers | |
FR 3653 | 4:00 PM Milan Bergamo Orio al Serio Airport | 1h30 | 5:30 PM Bari Palese Airport | 0 transfersDirect | |
U23523 | 6:55 PM Milan Malpensa Airport | 1h40 | 8:35 PM Bari Palese Airport | 0 transfersDirect | |
FR 2876 | 7:45 PM Milan Bergamo Orio al Serio Airport | 1h40 | 9:25 PM Brindisi Airport | 0 transfersDirect | |
| Wednesday, July 22 | |||||
AZ1629 | 6:30 AM Milan Linate Airport | 1h35 | 8:05 AM Brindisi Airport | 0 transfersDirect | |
AZ1629+ BRINDISI AIRPORT LINK AP23 · Regionale Veloce 4404 | 6:30 AM Milan Linate Airport | 5h36 | 12:06 PM Ostuni station | 2 transfers | |
AZ1629+ BRINDISI AIRPORT LINK AP19 · Regionale Veloce 4398 | 6:30 AM Milan Linate Airport | 4h36 | 11:06 AM Ostuni station | 2 transfers | |
AZ1629+ BRINDISI AIRPORT LINK AP27 · Regionale Veloce 4406 | 6:30 AM Milan Linate Airport | 6h36 | 1:06 PM Ostuni station | 2 transfers | |
AZ2013 · AZ1621+ BRINDISI AIRPORT LINK AP31 · Regionale Veloce 4410 | 7:00 AM Milan Linate Airport | 7h06 | 2:06 PM Ostuni station | 3 transfers | |
AZ2013 · AZ1621 | 7:00 AM Milan Linate Airport | 3h30 | 10:30 AM Brindisi Airport | 1 transfer | |
AZ2013 · AZ1621+ BRINDISI AIRPORT LINK AP25+ Intercity 614 | 7:00 AM Milan Linate Airport | 5h33 | 12:33 PM Ostuni station | 3 transfers | |
AZ2013 · AZ1617 | 7:00 AM Milan Linate Airport | 3h35 | 10:35 AM Bari Palese Airport | 1 transfer | |
AZ2013 · AZ1621+ BRINDISI AIRPORT LINK AP27 · Regionale Veloce 4406 | 7:00 AM Milan Linate Airport | 6h06 | 1:06 PM Ostuni station | 3 transfers | |
FR 3653 | 7:10 AM Milan Bergamo Orio al Serio Airport | 1h30 | 8:40 AM Bari Palese Airport | 0 transfersDirect | |
AZ2055 · AZ1617 | 7:30 AM Milan Linate Airport | 3h05 | 10:35 AM Bari Palese Airport | 1 transfer | |
FR 2858 | 7:50 AM Milan Bergamo Orio al Serio Airport | 1h40 | 9:30 AM Brindisi Airport | 0 transfersDirect | |
LG6992 · LG511 | 8:30 AM Milan Malpensa Airport | 24h20 | 8:50 AM Brindisi Airport | 1 transfer | |
AZ1649 | 8:55 AM Milan Linate Airport | 1h25 | 10:20 AM Bari Palese Airport | 0 transfersDirect | |
AZ2029 · AZ1619+ BRINDISI AIRPORT LINK AP43 · Regionale Veloce 4428 | 9:00 AM Milan Linate Airport | 8h06 | 5:06 PM Ostuni station | 3 transfers | |
AZ2029 · AZ1619+ BRINDISI AIRPORT LINK AP47 · Regionale Veloce 4432 | 9:00 AM Milan Linate Airport | 9h06 | 6:06 PM Ostuni station | 3 transfers | |
AZ2029 · AZ1619+ BRINDISI AIRPORT LINK AP41 · Regionale Veloce 4426 | 9:00 AM Milan Linate Airport | 7h36 | 4:36 PM Ostuni station | 3 transfers | |
AZ2029 · AZ1619 | 9:00 AM Milan Linate Airport | 5h30 | 2:30 PM Brindisi Airport | 1 transfer | |
FR 979 | 10:55 AM Milan Malpensa Airport | 1h45 | 12:40 PM Brindisi Airport | 0 transfersDirect | |
AZ1655 | 10:55 AM Milan Linate Airport | 1h25 | 12:20 PM Bari Palese Airport | 0 transfersDirect | |
This is the last flight of the day. | |||||
Find all the dates and times for this journey
Compare bus, train, 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.
Discover the best of Ostuni — top attractions, local food, transport tips, budget advice, and currency essentials. Plan your perfect Ostuni trip today.
Main civic museum presenting local archaeology, art, and history. It is the best introduction to Ostuni’s development from prehistory to today.
Archaeological section famous for finds linked to the prehistoric 'Woman of Ostuni'. It is essential for understanding the area’s ancient past.
Museum rooms in a former Carmelite convent displaying historical material and temporary exhibits tied to Ostuni’s cultural heritage.
Ostuni’s main square, lined with landmarks and daily life. It is the natural starting point for visiting the White City and people-watching.
The famous whitewashed old quarter of alleys, arches, and stairways. It is Ostuni’s most atmospheric area for wandering and photography.
Panoramic terrace near the cathedral with sweeping views over olive groves to the Adriatic. It is one of the city’s best sunset viewpoints.
Hand-rolled ear-shaped pasta, usually served with tomato sauce, caciocavallo or turnip tops. A Puglian staple found across Ostuni homes and trattorias.
Broad beans puréed until silky and served with wild chicory. A classic peasant dish of Puglia, prized for its simple local ingredients and deep flavor.
Crisp baked bread dough ring made with white wine and olive oil. Traditional in Puglia and perfect with Ostuni aperitivi, cheese, or local wine.
Michelin-starred dining in a refined masseria setting. Known for elegant Puglian tasting menus, polished service, and seasonal local ingredients.
Well-regarded traditional restaurant in Ostuni’s old town. Expect regional pasta, local meats, and Apulian classics in a warm stone-vaulted setting.
Established casual favorite serving wood-fired pizzas and local dishes. Lively atmosphere, dependable quality, and popular with both residents and visitors.
Moderate for Puglia: lodging rises in peak summer, but meals and local transport are usually reasonable versus major Italian tourist cities.
Service is often included or modest. Round up at cafes, leave 5-10% at restaurants for good service, and round up taxi fares.
Find answers to the most common questions about traveling from Milan to Ostuni by flight. From journey times and ticket prices to direct connections, first and last departures, and even whether the route is scenic, our FAQs cover everything you need to plan your trip. Whether you’re looking for the fastest flight, the cheapest option, or tips for making the most of your visit at Ostuni, this guide helps you travel smarter and with confidence.

Most Milan to Ostuni flights use the Milan Linate Airport to Brindisi Airport airport pair. Use this guide to compare Milan and Ostuni airports on this route, check city-centre transport, alongside checking practicalities like airport facilities and services.
Milan Linate Airport is 6 km from Milan city centre. Public transport options include:
Milan Linate Airport has practical services for this route, including Wifi, Shopping, Parking, ATM, Taxis, Accessibility, WC, Shower, Lounge, and Lost and Found Office.
Free Wi-Fi available throughout the airport. ATMs are located in the arrivals and departures areas.
Lost and found is available at the station.
Available at Milan Linate Airport: Parking, Taxis, WC.
Accessibility facilities are available at Milan Linate Airport: Ramps, assistance.
Milan Malpensa Airport is 2 km from Milan city centre. Public transport options include:
Milan Malpensa Airport has practical services for this route, including Wifi, Shopping, Parking, ATM, Taxis, Accessibility, WC, Shower, Lounge, and Lost and Found Office.
Free Wi-Fi available throughout the airport. ATMs are located in both terminals, near check-inas and gates.
Lost and found is available at the station.
Available at Milan Malpensa Airport: Parking, Taxis, WC.
Accessibility facilities are available at Milan Malpensa Airport: Elevators, ramps.
Milan Bergamo Orio al Serio Airport is 1 km from Milan city centre. Public transport options include:
Milan Bergamo Orio al Serio Airport has practical services for this route, including Wifi, Shopping, Parking, ATM, Taxis, Accessibility, WC, Shower, Lounge, and Lost and Found Office.
Free Wi-Fi available throughout the airport. ATMs are located in the arrivals and departures areas.
Lost and found is available at the station.
Available at Milan Bergamo Orio al Serio Airport: Parking, Taxis, WC.
Accessibility facilities are available at Milan Bergamo Orio al Serio Airport: Elevators, ramps.
Here are some other resources that might have the information you need