- Must visit
Pinacoteca di Brera
One of Italy’s leading art museums, known for masterpieces by Raphael, Caravaggio, and Mantegna in the elegant Brera district.
Cheapest price
$24
Average price
$66
Fastest journey
10 h 30 m
Average duration
10 h 54 m
Buses per day
35
Distance
786 km
The best way to find a cheap bus ticket from Bari to Milan is to book your journey as far in advance as possible and to avoid traveling at rush hour.
The average ticket from Bari to Milan will cost around $66 if you buy it on the day, but the cheapest tickets can be found for only $24.
Of the 35 buses that leave Bari for Milan on Sat, Jun 06, 10 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
On Sat, Jun 06 the direct buses cover the 786 km distance in an average of 10 h 54 m but if you time it right, some buses will get you there in just 10 h 30 m .
On Sat, Jun 06 the slowest buses will take 11 h 15 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.
FlixBus
1120 · 2400
1114 · 3492
FlixBus · FlixBus
2422
101
FlixBus
040
101
2214Omio recommends booking the bus as it is the most popular option from Bari to Milan among Omio's users. If you are prioritising price take the bus with prices starting from $21. For those with little time consider booking a flight which can get you there in 3h 10m. In case you are seeking to minimise your carbon footprint the train is your best bet as it emits only 0.2 - 0.7kg. The ticket price range depends on the travel mode: a bus costs an average of $21, and a flight costs an average of $21.
Distance: 488 miles (786 km)
Most popular Bus | Train | Flight |
|---|---|---|
$43 Average price Cheapest | $91 Average price | $132 Average price |
10h 54m Average total duration 10h 24m Onboard + 30m Additional time* | 9h 11m Average total duration 8h 41m Onboard + 30m Additional time* | 6h 10m Average total duration Fastest 3h 10m Onboard + 3h 0m Additional time* |
0.8 - 2.0kg CO2 emissions | 0.2 - 0.7kg CO2 emissions Lowest | - CO2 emissions |
![]() Most popular bus company | ![]() Most popular train company | ![]() Most popular airline |
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 Bari to Milan:
A bus is $49 (€39) less than a train for this route with tickets for a train from Bari to Milan costing on average $91 (€74).
A bus is $89 (€72) less than a flight for this route with tickets for a flight from Bari to Milan costing on average $132 (€106).
Other travel options to Milan take longer:
Train takes on average 8h 41m.
Bus takes on average 10h 24m.
| Operator | Departure Time | Arrival Time | Duration | Departure days | Cheapest price |
|---|---|---|---|---|---|
Operator Itabus | Departure Time 12:05AM | Arrival Time 02:45PM | Duration 14h40 | Departure days Mon, Tue, Wed, Thu, Sat, Sun | Cheapest price $38 |
Operator Itabus | Departure Time 01:05AM | Arrival Time 05:10PM | Duration 16h05 | Departure days Mon, Tue, Wed, Thu, Sat, Sun | Cheapest price $37 |
Operator FlixBus | Departure Time 01:45AM | Arrival Time 08:55PM | Duration 19h10 | Departure days Mon, Tue, Wed, Thu, Sun | Cheapest price $58 |
Operator BlaBlaCar | Departure Time 07:00AM | Arrival Time 04:40PM | Duration 9h40 | Departure days Sun | Cheapest price $62 |
Operator Marino Autolinee | Departure Time 07:15AM | Arrival Time 07:25PM | Duration 12h10 | Departure days Everyday | Cheapest price $46 |
Operator Itabus | Departure Time 07:20AM | Arrival Time 11:05PM | Duration 15h45 | Departure days Thu, Sat, Sun | Cheapest price $25 |
Operator FlixBus | Departure Time 07:30AM | Arrival Time 08:00PM | Duration 12h30 | Departure days Everyday | Cheapest price $23 |
Operator BlaBlaCar | Departure Time 08:00AM | Arrival Time 12:10AM | Duration 16h10 | Departure days Mon | Cheapest price $94 |
Operator FlixBus | Departure Time 08:15AM | Arrival Time 10:55PM | Duration 14h40 | Departure days Sun | Cheapest price $67 |
Operator BlaBlaCar | Departure Time 09:00AM | Arrival Time 06:10PM | Duration 9h10 | Departure days Tue, Sun | Cheapest price $60 |
Operator BlaBlaCar | Departure Time 10:10AM | Arrival Time 07:10PM | Duration 9h00 | Departure days Sun | Cheapest price $69 |
Operator BlaBlaCar | Departure Time 10:20AM | Arrival Time 06:50PM | Duration 8h30 | Departure days Mon | Cheapest price $89 |
Operator BlaBlaCar | Departure Time 10:50AM | Arrival Time 09:00PM | Duration 10h10 | Departure days Sat | Cheapest price $65 |
Operator BlaBlaCar | Departure Time 11:00AM | Arrival Time 09:20PM | Duration 10h20 | Departure days Fri, Sun | Cheapest price $52 |
Operator FlixBus | Departure Time 12:15PM | Arrival Time 10:15AM | Duration 22h00 | Departure days Mon, Tue, Wed, Thu, Sun | Cheapest price $64 |
Operator FlixBus | Departure Time 01:10PM | Arrival Time 04:00AM | Duration 14h50 | Departure days Mon, Thu, Fri, Sat, Sun | Cheapest price $102 |
Operator Itabus | Departure Time 01:45PM | Arrival Time 06:10AM | Duration 16h25 | Departure days Everyday | Cheapest price $43 |
Operator FlixBus | Departure Time 02:00PM | Arrival Time 09:30AM | Duration 19h30 | Departure days Everyday | Cheapest price $74 |
Operator FlixBus | Departure Time 02:25PM | Arrival Time 05:55AM | Duration 15h30 | Departure days Sat | Cheapest price $94 |
Operator Itabus | Departure Time 04:30PM | Arrival Time 08:10AM | Duration 15h40 | Departure days Everyday | Cheapest price $43 |
Operator FlixBus | Departure Time 04:50PM | Arrival Time 07:20AM | Duration 14h30 | Departure days Mon, Tue, Fri, Sat, Sun | Cheapest price $46 |
Operator BlaBlaCar | Departure Time 05:30PM | Arrival Time 03:00AM | Duration 9h30 | Departure days Sun | Cheapest price $84 |
Operator Itabus | Departure Time 05:40PM | Arrival Time 07:40AM | Duration 14h00 | Departure days Everyday | Cheapest price $27 |
Operator FlixBus | Departure Time 06:00PM | Arrival Time 11:55AM | Duration 17h55 | Departure days Everyday | Cheapest price $83 |
Operator Itabus | Departure Time 06:35PM | Arrival Time 06:10AM | Duration 11h35 | Departure days Thu, Sun | Cheapest price $30 |
Operator Marino Autolinee | Departure Time 07:35PM | Arrival Time 07:00AM | Duration 11h25 | Departure days Everyday | Cheapest price $40 |
Operator FlixBus | Departure Time 08:00PM | Arrival Time 08:15AM | Duration 12h15 | Departure days Everyday | Cheapest price $35 |
Operator Itabus | Departure Time 08:20PM | Arrival Time 07:35AM | Duration 11h15 | Departure days Everyday | Cheapest price $20 |
Operator FlixBus | Departure Time 08:45PM | Arrival Time 08:15AM | Duration 11h30 | Departure days Everyday | Cheapest price $24 |
Operator FlixBus | Departure Time 09:55PM | Arrival Time 12:05PM | Duration 14h10 | Departure days Everyday | Cheapest price $35 |
Operator Itabus | Departure Time 11:05PM | Arrival Time 02:45PM | Duration 15h40 | Departure days Thu, Fri, Sat, Sun | Cheapest price $38 |
Operator Marino Autolinee | Departure Time 11:10PM | Arrival Time 09:40AM | Duration 10h30 | Departure days Everyday | Cheapest price $78 |
The table below shows live departures for Bari to Milan buses for today, Friday, June 5. You can also manually refresh the results below to see updated bus journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
040 | 7:35 PM Bari, Via Capruzzi (Terminal Bus Bari) | 10h50 | 6:25 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 0 transfersDirect | |
040 | 7:35 PM Bari, Via Capruzzi (Terminal Bus Bari) | 11h25 | 7:00 AM Milano, Autostazione Lampugnano | 0 transfersDirect | |
FlixBus · FlixBus | 8:00 PM Bari, Via Capruzzi (Terminal Bus Bari) | 11h30 | 7:30 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1 transfer | |
FlixBus · FlixBus | 8:00 PM Bari, Via Capruzzi (Terminal Bus Bari) | 12h15 | 8:15 AM Milano, Autostazione Lampugnano | 1 transfer | |
2214 | 8:20 PM Bari, Via Capruzzi (Terminal Bus Bari) | 11h15 | 7:35 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 0 transfersDirect | |
2214 | 8:20 PM Bari, Via Capruzzi (Terminal Bus Bari) | 12h00 | 8:20 AM Milano, Autostazione Lampugnano | 0 transfersDirect | |
FlixBus | 8:45 PM Bari, Via Capruzzi (Terminal Bus Bari) | 10h45 | 7:30 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 0 transfersDirect | |
FlixBus | 8:45 PM Bari, Via Capruzzi (Terminal Bus Bari) | 11h30 | 8:15 AM Milano, Autostazione Lampugnano | 0 transfersDirect | |
FlixBus · FlixBus · FlixBus | 8:45 PM Bari, Via Capruzzi (Terminal Bus Bari) | 18h45 | 3:30 PM Milano, Milan Linate Airport | 2 transfers | |
FlixBus · FlixBus | 9:55 PM Bari, Via Capruzzi (Terminal Bus Bari) | 14h10 | 12:05 PM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus · FlixBus | 9:55 PM Bari, Via Capruzzi (Terminal Bus Bari) | 13h35 | 11:30 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1 transfer | |
FlixBus · FlixBus · FlixBus | 9:55 PM Bari, Via Capruzzi (Terminal Bus Bari) | 23h00 | 8:55 PM Milano, Milan Linate Airport | 2 transfers | |
1114 · 3492 | 11:05 PM Bari, Via Capruzzi (Terminal Bus Bari) | 15h40 | 2:45 PM Milano, Autostazione Lampugnano | 1 transfer | |
101 | 11:10 PM Bari, Via Capruzzi (Terminal Bus Bari) | 10h30 | 9:40 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 0 transfersDirect | |
101 | 11:10 PM Bari, Via Capruzzi (Terminal Bus Bari) | 11h10 | 10:20 AM Milano, Autostazione Lampugnano | 0 transfersDirect | |
1106 · 3492 | 12:05 AM Bari, Via Capruzzi (Terminal Bus Bari) | 14h40 | 2:45 PM Milano, Autostazione Lampugnano | 1 transfer | |
1106 · 2126 | 12:05 AM Bari, Via Capruzzi (Terminal Bus Bari) | 16h35 | 4:40 PM Milano, Autostazione Lampugnano | 1 transfer | |
1108 · 2126 | 1:05 AM Bari, Via Capruzzi (Terminal Bus Bari) | 15h35 | 4:40 PM Milano, Autostazione Lampugnano | 1 transfer | |
1108 · 3802 | 1:05 AM Bari, Via Capruzzi (Terminal Bus Bari) | 16h05 | 5:10 PM Milano, Autostazione Lampugnano | 1 transfer | |
206 · 200 | 7:15 AM Bari, Via Capruzzi (Terminal Bus Bari) | 11h25 | 6:40 PM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1 transfer | |
206 · 200 | 7:15 AM Bari, Via Capruzzi (Terminal Bus Bari) | 12h10 | 7:25 PM Milano, Autostazione Lampugnano | 1 transfer | |
1120 · 2400 | 7:20 AM Bari, Via Capruzzi (Terminal Bus Bari) | 15h45 | 11:05 PM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1 transfer | |
FlixBus · FlixBus | 7:30 AM Bari, Via Capruzzi (Terminal Bus Bari) | 13h55 | 9:25 PM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus | 7:30 AM Bari, Via Capruzzi (Terminal Bus Bari) | 12h30 | 8:00 PM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 0 transfersDirect | |
FlixBus · FlixBus | 1:10 PM Bari, Via Capruzzi (Terminal Bus Bari) | 14h50 | 4:00 AM Milano, Autostazione Lampugnano | 1 transfer | |
1104 · 3898 | 1:45 PM Bari, Via Capruzzi (Terminal Bus Bari) | 16h25 | 6:10 AM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus · FlixBus | 2:00 PM Bari, Aeroporto di Bari-Karol Wojtyła | 18h55 | 8:55 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1 transfer | |
FlixBus · FlixBus | 2:00 PM Bari, Aeroporto di Bari-Karol Wojtyła | 19h30 | 9:30 AM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus · FlixBus | 2:25 PM Bari, Via Capruzzi (Terminal Bus Bari) | 15h30 | 5:55 AM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus · FlixBus | 2:25 PM Bari, Via Capruzzi (Terminal Bus Bari) | 14h50 | 5:15 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1 transfer | |
1110 · 2418 | 4:30 PM Bari, Via Capruzzi (Terminal Bus Bari) | 15h40 | 8:10 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1 transfer | |
FlixBus · FlixBus | 4:50 PM Bari, Via Capruzzi (Terminal Bus Bari) | 13h15 | 6:05 AM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus · FlixBus | 4:50 PM Bari, Via Capruzzi (Terminal Bus Bari) | 14h30 | 7:20 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1 transfer | |
2422 | 5:40 PM Bari, Via Capruzzi (Terminal Bus Bari) | 14h00 | 7:40 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 0 transfersDirect | |
FlixBus · FlixBus · FlixBus | 6:00 PM Bari, Via Capruzzi (Terminal Bus Bari) | 17h55 | 11:55 AM Milano, Milan Linate Airport | 2 transfers | |
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.
Buses from Bari to Milan run on average 26 times per day, taking around 10h 24m. Cheap bus tickets for this journey start at $21 (€17) if you book in advance.
There are 10 buses per day. The earliest bus runs at 00:01, the last at 23:55. The fastest bus covers the 488 miles (786 km) distance in 10h 30m.
Distance 488 miles (786 km) |
Average bus duration 10h 24m |
Cheapest ticket price $21 (€17) |
Buses per day 26 |
Direct buses 10 |
Fastest bus 10h 30m |
First bus 12:01 AM |
Last bus 11:55 PM |
Cheapest Month Mar |
Cheapest Day Sat |
High Season Jul - Sep |
Low Season Jan - Mar |
Busiest Day Sat |
Least Busy Day Sun |
Best time to book 56 days |
Discover the best of Milan — top attractions, local food, transport tips, budget advice, and currency essentials. Plan your perfect Milan trip today.
One of Italy’s leading art museums, known for masterpieces by Raphael, Caravaggio, and Mantegna in the elegant Brera district.
A major museum of 20th-century Italian art facing Piazza del Duomo, with strong Futurist holdings and striking city views.
A contemporary museum focused on world cultures and major temporary exhibitions, popular for its modern architecture and changing shows.
Milan’s canal district, best known for waterside walks, photogenic bridges, and lively atmosphere day and night.
A charming historic neighborhood of narrow streets, galleries, boutiques, and classic Milan character, ideal for wandering.
Milan’s main square and the symbolic heart of the city, surrounded by major landmarks and constant urban energy.
Creamy saffron risotto, one of Milan's signature dishes, prized for its rich flavor and golden color.
Braised veal shank cooked slowly until tender, traditionally served with gremolata and often paired with risotto.
Breaded veal cutlet fried in butter, a classic Milanese specialty and one of the city's most famous dishes.
Celebrated fine dining restaurant offering creative haute cuisine with an elegant, Michelin-starred reputation.
Famous central bakery known for panzerotti, a beloved casual stop near the Duomo with constant local appeal.
Modern Milanese restaurant known for refined Lombard classics in a stylish contemporary setting.
Milan is pricier than most Italian cities, especially for hotels, central dining, and aperitivo areas.
Service is often included or covered by coperto. Tipping is not required, but rounding up or leaving EUR 1-5 for good service is appreciated. Taxis can be rounded up.
Official public transport app
Milan Linate Airport, Milan -> Milano Centrale, Milan
Per day, you will find that there are on average between one and three buses from Bari to Milan. The weekly total is typically around 15 buses that are offered between the two locations. There are many things that can help determine how long your bus from Bari to Milan is, including what time of the day your bus departs, whether or not you have a transfer before reaching Milan, how long your transfer is scheduled for, and the number of stops your bus makes during the voyage. On average, your trip will take anywhere from 10h 25min to 11h 05min. This voyage is not direct, so you can expect to transfer buses during it. You’ll never run out of things to see and do in Milan, whether it’s exploring the Sforzesco Castle or paying a visit to the Teatro alla Scala.
The length of buses from Bari to Milan can vary due to a variety of different factors, including the time of day that the bus is supposed to leave, whether or not you are required to transfer buses during your trip, how long your transfers are scheduled for, and the number of stops that your bus makes before reaching its destination. In general, you will find that buses between these two locations typically take between 10h 25min and 11h 05min. This journey is not direct, which means that you will have to transfer buses at least one time.
The normal average number of daily Bari to Milan buses is between one and three. Per week, approximately 15 buses depart between these two locations. You will find that this journey is almost never direct, but instead requires travelers to make at least one transfer before reaching their destination. In addition to a transfer, buses for this route often make extra stops along the way. Buses for this route will typically depart in the early evening.
Departure bus station: You can expect for your bus to leave from the Bari bus station on Via Giuseppe Capruzzia. This station is conveniently placed in the city center and is just a short walk from public bus lines 1056 and 1056, making it easy to travel here from other parts of town. At this station, travelers have access to things like public restrooms, free Wi-Fi connection, sitting areas, and outlets. You should usually try to arrive at your departure station at the latest half an hour before your bus is supposed to begin boarding.
Arrival bus station: When traveling from Bari to Milan by bus, you will arrive at either the San Donato M3 or the Autostazione Lampugnano stations in Milan. The San Donato M3 can be found in the southeast part of the city, around 6.2 miles (10 km) from the city center. If you want to go to the city center from here, grab public bus line NM3, which will bring you there in around 35min total. Autostazione Lampugnano is placed in the northwest region of town, approximately 7.5 miles (12 km) from downtown Milan. Those that want to go to the city center from here can also grab bus line NM1, which will bring them to this neighborhood in anywhere from 35 to 45min. Both of these stations have drinking fountains, places to sit and relax, and free Wi-Fi that you can use to stay connected.
There is one primary transport provider that is responsible for servicing buses from Bari to Milan, and it is known as MarinoBus. Since its creation, MarinoBus has become one of the largest bus companies in not only Italy, but the rest of Europe, and is now known for offering buses between over 6,000 different destinations on the continent. When you travel with this company for this route, you can plan on having at least one transfer. This may take place in the city of Bologna.
Per day, MarinoBus typically services anywhere from one to three buses from Bari to Milan. On average, the weekly total is around 15 buses that are serviced between the two destinations. It’s always possible for the duration of your trip to vary, but in general, you can count on it taking between 10h 25min and 11h 05min unless there is any additional traffic or weather complications. Direct buses for this itinerary are typically not offered, so plan on making at least one transfer. For journeys between these two cities, the bus company will normally operate standard coaches. Buses from Bari to Milan depart from the Bari bus station on Via Giuseppe Capruzzi and arrive at either the San Donato M3 or the Autostazione Lampugnano stations in Milan. It’s possible to cancel your ticket up to 48h in advance of your scheduled departure date, but keep in mind that you will only be able to receive a partial refund of up to 70% of the ticket price. The company normally will offer the same timetable during the week as it does on the weekend, but fewer buses run on days that are considered to be public holidays.
To help make your trip as comfortable as possible, MarinoBus offers a selection of amenities and services for guests. For example, almost all of the company’s buses have free and unlimited Wi-Fi for you to use during the duration of your voyage. You are entitled to bring a carry-on item and up to two pieces of luggage with you onboard at no additional cost. You may bring one small animal with you on the bus, as long as you keep it in a carrier and stored in front of your legs. Bicycles are accepted as well, but you must take your bicycle apart and keep it in a bag. MarinoBus only operates coaches that are accessible for those with disabilities or limited mobility. Employees are there to help you with boarding and disembarking if you will need additional assistance.
Find answers to the most common questions about traveling from Bari to Milan by bus. 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 bus, the cheapest option, or tips for making the most of your visit at Milan, this guide helps you travel smarter and with confidence.

Here are some other resources that might have the information you need