- 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.
Cheapest price on Oct 20
$21
Average ticket price on Oct 20
$121
Fastest journey on Oct 20
1 h 25 m
Average journey duration on Oct 20
1 h 26 m
Flights on Oct 20
62
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 $121 if you buy it on the day, but the cheapest tickets can be found for only $21.
On Tue, Oct 20, we found 62 flights from Milan to Ostuni, including 20 direct services.
On Tue, Oct 20 the direct flights cover the 860 km distance in an average of 1 h 26 m but if you time it right, some flights will get you there in just 1 h 25 m .
On Tue, Oct 20 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 278
FR 4667
FR 979
FR 3653
FR 859
AZ1637
AZ1639
AZ1655
AZ1649
FR 4667Flights from Milan to Ostuni depart on average 35 times per day, taking around 2h 14m. Cheap flight tickets for this journey start at $21 (€18) 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 25m. September is the cheapest month to fly.
Distance 534 miles (860 km) |
Average flight duration 2h 14m |
Cheapest ticket price $21 (€18) |
Flights per day 35 |
Direct flights 18 |
Fastest flight 1h 25m |
First flight 12:20 AM |
Last flight 11:55 PM |
Cheapest Month Sep |
Cheapest Day Sun |
High Season Jul - Sep |
Low Season Jan - Mar |
Busiest Day Thu |
Least Busy Day Tue |
Best time to book 14 days |
The table below shows live departures for Milan to Ostuni flights for today, Monday, October 19. You can also manually refresh the results below to see updated flight journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
FR 2864 | 8:35 PM Milan Bergamo Orio al Serio Airport | 1h40 | 10:15 PM Brindisi Airport | 0 transfersDirect | |
FR 4658 | 8:55 PM Milan Bergamo Orio al Serio Airport | 1h30 | 10:25 PM Bari Palese Airport | 0 transfersDirect | |
| Tuesday, October 20 | |||||
FR 278 | 5:45 AM Milan Malpensa Airport | 1h40 | 7:25 AM Bari Palese Airport | 0 transfersDirect | |
AZ1637 | 6:15 AM Milan Linate Airport | 1h25 | 7:40 AM Bari Palese Airport | 0 transfersDirect | |
AZ1629+ BRINDISI AIRPORT LINK AP23 · Regionale Veloce 4404 | 6:25 AM Milan Linate Airport | 5h41 | 12:06 PM Ostuni station | 2 transfers | |
AZ1629 | 6:25 AM Milan Linate Airport | 1h40 | 8:05 AM Brindisi Airport | 0 transfersDirect | |
AZ1629+ BRINDISI AIRPORT LINK AP19 · Regionale Veloce 4398 | 6:25 AM Milan Linate Airport | 4h41 | 11:06 AM Ostuni station | 2 transfers | |
AZ1629+ BRINDISI AIRPORT LINK AP27 · Regionale Veloce 4406 | 6:25 AM Milan Linate Airport | 6h41 | 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 · AZ1617 | 7:00 AM Milan Linate Airport | 3h40 | 10:40 AM Bari Palese 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 · AZ1621 | 7:00 AM Milan Linate Airport | 3h10 | 10:10 AM Brindisi 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 | |
AZ2055 · AZ1617 | 7:30 AM Milan Linate Airport | 3h10 | 10:40 AM Bari Palese Airport | 1 transfer | |
FR 4667 | 7:40 AM Milan Bergamo Orio al Serio Airport | 1h30 | 9:10 AM Bari Palese Airport | 0 transfersDirect | |
EW2821 · EW2850 | 8:00 AM Milan Malpensa Airport | 6h50 | 2:50 PM Bari Palese Airport | 1 transfer | |
BA591+ BA2606 | 8:30 AM Milan Malpensa Airport | 12h35 | 9:05 PM Bari Palese Airport | 1 transfer | |
LG6992 · LG537 | 8:30 AM Milan Malpensa Airport | 11h10 | 7:40 PM Bari Palese 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 AP51 · Regionale Veloce 4438 | 9:00 AM Milan Linate Airport | 10h06 | 7:06 PM Ostuni station | 3 transfers | |
AZ2029 · AZ1619 | 9:00 AM Milan Linate Airport | 5h35 | 2:35 PM Brindisi Airport | 1 transfer | |
FR 979 | 9:15 AM Milan Malpensa Airport | 1h45 | 11:00 AM Brindisi Airport | 0 transfersDirect | |
FR 3448 | 9:35 AM Milan Bergamo Orio al Serio Airport | 1h40 | 11:15 AM Brindisi Airport | 0 transfersDirect | |
BA7302+ BA2606 | 10:40 AM Milan Linate Airport | 10h25 | 9:05 PM Bari Palese Airport | 1 transfer | |
AZ2045 · AZ1619+ BRINDISI AIRPORT LINK AP43 · Regionale Veloce 4428 | 11:00 AM Milan Linate Airport | 6h06 | 5:06 PM Ostuni station | 3 transfers | |
AZ2045 · AZ1619+ BRINDISI AIRPORT LINK AP47 · Regionale Veloce 4432 | 11:00 AM Milan Linate Airport | 7h06 | 6:06 PM Ostuni station | 3 transfers | |
AZ2045 · AZ1619+ BRINDISI AIRPORT LINK AP51 · Regionale Veloce 4438 | 11:00 AM Milan Linate Airport | 8h06 | 7:06 PM Ostuni station | 3 transfers | |
AZ2045 · AZ1613 | 11:00 AM Milan Linate Airport | 3h35 | 2:35 PM Bari Palese Airport | 1 transfer | |
U23523 | 11:00 AM Milan Malpensa Airport | 1h40 | 12:40 PM Bari Palese Airport | 0 transfersDirect | |
AZ2045 · AZ1619 | 11:00 AM Milan Linate Airport | 3h35 | 2:35 PM Brindisi Airport | 1 transfer | |
BA569+ BA2606 | 11:10 AM Milan Linate Airport | 9h55 | 9:05 PM Bari Palese Airport | 1 transfer | |
AZ1655 | 11:10 AM Milan Linate Airport | 1h25 | 12:35 PM Bari Palese Airport | 0 transfersDirect | |
FR 859 | 11:50 AM Milan Bergamo Orio al Serio Airport | 1h40 | 1:30 PM Brindisi Airport | 0 transfersDirect | |
U23515+ BRINDISI AIRPORT LINK AP39 · Regionale Veloce 4422 | 11:55 AM Milan Malpensa Airport | 4h11 | 4:06 PM Ostuni station | 2 transfers | |
U23515+ BRINDISI AIRPORT LINK AP41 · Regionale Veloce 4426 | 11:55 AM Milan Malpensa Airport | 4h41 | 4:36 PM Ostuni station | 2 transfers | |
U23515 | 11:55 AM Milan Malpensa Airport | 1h50 | 1:45 PM Brindisi Airport | 0 transfersDirect | |
U23515+ BRINDISI AIRPORT LINK AP43 · Regionale Veloce 4428 | 11:55 AM Milan Malpensa Airport | 5h11 | 5:06 PM Ostuni station | 2 transfers | |
AZ2133 · AZ1623+ BRINDISI AIRPORT LINK AP59 · Regionale Veloce 4442 | 1:00 PM Milan Linate Airport | 8h06 | 9:06 PM Ostuni station | 3 transfers | |
AZ2133 · AZ1623 | 1:00 PM Milan Linate Airport | 5h25 | 6:25 PM Brindisi Airport | 1 transfer | |
AZ2133 · AZ1623+ BRINDISI AIRPORT LINK AP59+ InterCityNotte 754 | 1:00 PM Milan Linate Airport | 8h14 | 9:14 PM Ostuni station | 3 transfers | |
AZ2133 · AZ1623+ BRINDISI AIRPORT LINK AP63 · Regionale 4446 | 1:00 PM Milan Linate Airport | 9h08 | 10:08 PM Ostuni station | 3 transfers | |
AZ1671 | 2:00 PM Milan Linate Airport | 1h30 | 3:30 PM Bari Palese Airport | 0 transfersDirect | |
FR 2770 | 2:40 PM Milan Malpensa Airport | 1h40 | 4:20 PM Bari Palese Airport | 0 transfersDirect | |
AZ1641+ BRINDISI AIRPORT LINK AP51 · Regionale Veloce 4438 | 2:40 PM Milan Linate Airport | 4h26 | 7:06 PM Ostuni station | 2 transfers | |
AZ1641+ BRINDISI AIRPORT LINK AP59 · Regionale Veloce 4442 | 2:40 PM Milan Linate Airport | 6h26 | 9:06 PM Ostuni station | 2 transfers | |
AZ1641+ BRINDISI AIRPORT LINK AP55 · Regionale 4440 | 2:40 PM Milan Linate Airport | 5h15 | 7:55 PM Ostuni station | 2 transfers | |
AZ1641 | 2:40 PM Milan Linate Airport | 1h40 | 4:20 PM Brindisi Airport | 0 transfersDirect | |
AZ2071 · AZ1623 | 3:00 PM Milan Linate Airport | 3h25 | 6:25 PM Brindisi Airport | 1 transfer | |
AZ2071 · AZ1623+ BRINDISI AIRPORT LINK AP63 · Regionale 4446 | 3:00 PM Milan Linate Airport | 7h08 | 10:08 PM Ostuni station | 3 transfers | |
AZ2071 · AZ1623+ BRINDISI AIRPORT LINK AP59+ InterCityNotte 754 | 3:00 PM Milan Linate Airport | 6h14 | 9:14 PM Ostuni station | 3 transfers | |
AZ2071 · AZ1623+ BRINDISI AIRPORT LINK AP59 · Regionale Veloce 4442 | 3:00 PM Milan Linate Airport | 6h06 | 9:06 PM Ostuni station | 3 transfers | |
AZ2071 · AZ1607 | 3:00 PM Milan Linate Airport | 3h40 | 6:40 PM Bari Palese Airport | 1 transfer | |
FR 3653 | 4:00 PM Milan Bergamo Orio al Serio Airport | 1h30 | 5:30 PM Bari Palese Airport | 0 transfersDirect | |
FR 2858 | 4:20 PM Milan Bergamo Orio al Serio Airport | 1h40 | 6:00 PM Brindisi Airport | 0 transfersDirect | |
AZ2097 · AZ1603 | 6:00 PM Milan Linate Airport | 4h55 | 10:55 PM Bari Palese Airport | 1 transfer | |
AZ2097 · AZ1625 | 6:00 PM Milan Linate Airport | 5h00 | 11:00 PM Brindisi Airport | 1 transfer | |
AZ2109 · AZ1603 | 7:00 PM Milan Linate Airport | 3h55 | 10:55 PM Bari Palese Airport | 1 transfer | |
AZ2109 · AZ1625 | 7:00 PM Milan Linate Airport | 4h00 | 11:00 PM Brindisi Airport | 1 transfer | |
AZ1639 | 7:25 PM Milan Linate Airport | 1h25 | 8:50 PM Bari Palese Airport | 0 transfersDirect | |
This is the last flight of the day. | |||||
Find all the dates and times for this journey
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 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