The cheapest and fastest buses from Bari to San Donato Milanese
Cheapest price
$23
Average price
$59
Fastest journey
10 h 30 m
Average duration
10 h 57 m
Buses per day
29
Distance
778 km
The best way to find a cheap bus ticket from Bari to San Donato Milanese is to book your journey as far in advance as possible and to avoid traveling at rush hour.
The average ticket from Bari to San Donato Milanese will cost around $59 if you buy it on the day, but the cheapest tickets can be found for only $23.
Of the 29 buses that leave Bari for San Donato Milanese on Fri, May 22, 7 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
On Fri, May 22 the direct buses cover the 778 km distance in an average of 10 h 57 m but if you time it right, some buses will get you there in just 10 h 30 m .
On Fri, May 22 the slowest buses will take 11 h 25 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.
FlixBus7:35 AM12h20Bari, Via Capruzzi (Terminal Bus Bari)7:55 PMMilano, San Donato - Settore B (Viale Giuseppe Impastato)$231One-way0 transfers
1120 · 24007:20 AM15h45Bari, Via Capruzzi (Terminal Bus Bari)11:05 PMMilano, San Donato - Settore B (Viale Giuseppe Impastato)$261One-way1 transfer
24225:40 PM14h00Bari, Via Capruzzi (Terminal Bus Bari)7:40 AMMilano, San Donato - Settore B (Viale Giuseppe Impastato)$311One-way0 transfers
FlixBus · FlixBus8:00 PM12h15Bari, Via Capruzzi (Terminal Bus Bari)8:15 AMMilano, Autostazione Lampugnano$351One-way1 transfer
FlixBus · FlixBus8:00 PM11h30Bari, Via Capruzzi (Terminal Bus Bari)7:30 AMMilano, San Donato - Settore B (Viale Giuseppe Impastato)$351One-way1 transfer
10111:10 PM10h30Bari, Via Capruzzi (Terminal Bus Bari)9:40 AMMilano, San Donato - Settore B (Viale Giuseppe Impastato)$401One-way0 transfers
FlixBus8:45 PM10h45Bari, Via Capruzzi (Terminal Bus Bari)7:30 AMMilano, San Donato - Settore B (Viale Giuseppe Impastato)$571One-way0 transfers
0407:35 PM10h50Bari, Via Capruzzi (Terminal Bus Bari)6:25 AMMilano, San Donato - Settore B (Viale Giuseppe Impastato)$461One-way0 transfers
22148:20 PM11h15Bari, Via Capruzzi (Terminal Bus Bari)7:35 AMMilano, San Donato - Settore B (Viale Giuseppe Impastato)$371One-way0 transfers
206 · 2007:15 AM11h25Bari, Via Capruzzi (Terminal Bus Bari)6:40 PMMilano, San Donato - Settore B (Viale Giuseppe Impastato)$461One-way1 transfer
Travel Information
Compare train, bus, and flight for Bari to San Donato Milanese
Omio recommends booking the bus as it is the most popular option from Bari to San Donato Milanese among Omio's users. If you are prioritising price take the bus with prices starting from $23. For those with little time consider booking a flight which can get you there in 1h 40m. 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 $23, and a flight costs an average of $29.
Distance: 483 miles (778 km)
Compare bus with
Most popular Bus | Flight | Train | Driving |
|---|---|---|---|
$37 Average price Cheapest | $100 Average price | $82 Average price | $264 Average price (fuel + tolls) |
11h 34m Average total duration 11h 4m Onboard + 30m Additional time* | 4h 40m Average total duration Fastest 1h 40m Onboard + 3h 0m Additional time* | 10h 27m Average total duration 9h 57m Onboard + 30m Additional time* | 9h 25m Average total duration (door-to-door) |
0.8 - 1.9kg CO2 emissions | - CO2 emissions | 0.2 - 0.7kg CO2 emissions Lowest | - CO2 emissions |
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 Bari to San Donato Milanese:
A bus is $45 (€36) less than a train for this route with tickets for a train from Bari to San Donato Milanese costing on average $82 (€66).
A bus is $63 (€51) less than a flight for this route with tickets for a flight from Bari to San Donato Milanese costing on average $100 (€81).
Other travel options to San Donato Milanese take longer:
Train takes on average 9h 57m.
Bus takes on average 11h 4m.
Tickets start at around $37 (€30) compared to roughly $264 (€213) in fuel and tolls — a saving of about $226 (€183). The journey takes 11h 4m versus 9h 25m 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.
Direct services are operated by Marino Autolinee, FlixBus, Itabus.
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.
Bari to San Donato Milanese Bus Timetables
| Operator | Departure Time | Arrival Time | Duration | Departure days | Cheapest price |
|---|---|---|---|---|---|
Operator FlixBus | Departure Time 01:45AM | Arrival Time 05:10PM | Duration 15h25 | Departure days Thu, Fri, Sun | Cheapest price $60 |
Operator Itabus | Departure Time 05:20AM | Arrival Time 09:49PM | Duration 16h29 | Departure days Wed | Cheapest price $35 |
Operator FlixBus | Departure Time 05:35AM | Arrival Time 05:55PM | Duration 12h20 | Departure days Mon | Cheapest price $30 |
Operator Marino Autolinee | Departure Time 07:15AM | Arrival Time 06:40PM | Duration 11h25 | Departure days Thu, Fri, Sun | Cheapest price $46 |
Operator Itabus | Departure Time 07:20AM | Arrival Time 11:05PM | Duration 15h45 | Departure days Thu, Fri, Sun | Cheapest price $26 |
Operator FlixBus | Departure Time 07:35AM | Arrival Time 07:55PM | Duration 12h20 | Departure days Thu, Fri, Sun | Cheapest price $23 |
Operator FlixBus | Departure Time 08:15AM | Arrival Time 10:55PM | Duration 14h40 | Departure days Sun | Cheapest price $71 |
Operator FlixBus | Departure Time 01:10PM | Arrival Time 04:00AM | Duration 14h50 | Departure days Thu, Fri, Sun | Cheapest price $34 |
Operator FlixBus | Departure Time 01:45PM | Arrival Time 05:15AM | Duration 15h30 | Departure days Thu, Fri, Sun | Cheapest price $50 |
Operator FlixBus | Departure Time 02:00PM | Arrival Time 12:25PM | Duration 22h25 | Departure days Thu, Fri, Sun | Cheapest price $62 |
Operator FlixBus | Departure Time 02:25PM | Arrival Time 05:55AM | Duration 15h30 | Departure days Sun | Cheapest price $119 |
Operator Itabus | Departure Time 03:40PM | Arrival Time 05:40AM | Duration 14h00 | Departure days Sat | Cheapest price $37 |
Operator Itabus | Departure Time 04:30PM | Arrival Time 08:10AM | Duration 15h40 | Departure days Thu, Fri, Sun | Cheapest price $38 |
Operator FlixBus | Departure Time 04:50PM | Arrival Time 07:20AM | Duration 14h30 | Departure days Fri, Sun | Cheapest price $47 |
Operator FlixBus | Departure Time 05:05PM | Arrival Time 06:05AM | Duration 13h00 | Departure days Fri, Sun | Cheapest price $47 |
Operator Itabus | Departure Time 05:40PM | Arrival Time 07:40AM | Duration 14h00 | Departure days Thu, Fri, Sun | Cheapest price $31 |
Operator FlixBus | Departure Time 06:00PM | Arrival Time 09:00AM | Duration 15h00 | Departure days Thu, Fri, Sun | Cheapest price $60 |
Operator Itabus | Departure Time 06:20PM | Arrival Time 05:35AM | Duration 11h15 | Departure days Tue | Cheapest price $28 |
Operator Itabus | Departure Time 06:35PM | Arrival Time 07:05AM | Duration 12h30 | Departure days Thu, Sun | Cheapest price $31 |
Operator Itabus | Departure Time 07:20PM | Arrival Time 06:35AM | Duration 11h15 | Departure days Tue | Cheapest price $25 |
Operator Marino Autolinee | Departure Time 07:35PM | Arrival Time 06:25AM | Duration 10h50 | Departure days Thu, Fri, Sun | Cheapest price $40 |
Operator FlixBus | Departure Time 08:00PM | Arrival Time 07:30AM | Duration 11h30 | Departure days Thu, Fri, Sun | Cheapest price $33 |
Operator Itabus | Departure Time 08:20PM | Arrival Time 07:35AM | Duration 11h15 | Departure days Thu, Fri, Sun | Cheapest price $21 |
Operator FlixBus | Departure Time 08:45PM | Arrival Time 10:04AM | Duration 13h19 | Departure days Thu, Fri, Sun | Cheapest price $24 |
Operator FlixBus | Departure Time 09:55PM | Arrival Time 11:55AM | Duration 14h00 | Departure days Thu, Fri, Sun | Cheapest price $37 |
Operator Marino Autolinee | Departure Time 10:10PM | Arrival Time 08:40AM | Duration 10h30 | Departure days Mon | Cheapest price $37 |
Operator Marino Autolinee | Departure Time 11:10PM | Arrival Time 09:40AM | Duration 10h30 | Departure days Thu, Fri, Sun | Cheapest price $40 |
Live departures
Bari to San Donato Milanese bus times
The table below shows live departures for Bari to San Donato Milanese buses for today, Thursday, May 21. You can also manually refresh the results below to see updated bus journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
FlixBus · FlixBus | 1:10 PM Bari, Via Capruzzi (Terminal Bus Bari) | 14h50 | 4:00 AM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus · FlixBus | 1:45 PM Modugno, Via Paolo Marzi | 15h30 | 5:15 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1 transfer | |
FlixBus · FlixBus | 2:00 PM Bari, Aeroporto di Bari-Karol Wojtyła | 22h25 | 12:25 PM Assago, Viale Milanofiori (Assago M2) | 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: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 · FlixBus | 2:00 PM Bari, Aeroporto di Bari-Karol Wojtyła | 21h55 | 11:55 AM Sesto San Giovanni, Piazza Primo Maggio (Stazione ferroviaria) | 2 transfers | |
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 | |
1110 · 2422 | 4:30 PM Bari, Via Capruzzi (Terminal Bus Bari) | 15h10 | 7:40 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 | 6:00 PM Bari, Via Capruzzi (Terminal Bus Bari) | 15h00 | 9:00 AM Sesto San Giovanni, Piazza Primo Maggio (Stazione ferroviaria) | 1 transfer | |
2206 · 3826 | 6:35 PM Bari, Via Capruzzi (Terminal Bus Bari) | 12h30 | 7:05 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1 transfer | |
2206 · 2422 | 6:35 PM Bari, Via Capruzzi (Terminal Bus Bari) | 13h05 | 7:40 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1 transfer | |
040 | 7:35 PM Bari, Via Capruzzi (Terminal Bus Bari) | 10h50 | 6:25 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 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 | |
FlixBus · FlixBus | 8:45 PM Bari, Via Capruzzi (Terminal Bus Bari) | 15h10 | 11:55 AM Sesto San Giovanni, Piazza Primo Maggio (Stazione ferroviaria) | 1 transfer | |
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) | 13h19 | 10:04 AM Cormano, A4 (Cusano Milanino West) | 2 transfers | |
FlixBus · FlixBus | 9:55 PM Bari, Via Capruzzi (Terminal Bus Bari) | 14h10 | 12:05 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 | |
| Friday, May 22 | |||||
FlixBus · FlixBus | 1:45 AM Bari, Via Capruzzi (Terminal Bus Bari) | 15h25 | 5:10 PM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus · FlixBus | 1:45 AM Bari, Via Capruzzi (Terminal Bus Bari) | 14h45 | 4:30 PM Assago, Viale Milanofiori (Assago M2) | 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 | |
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 | 7:35 AM Bari, Via Capruzzi (Terminal Bus Bari) | 12h20 | 7:55 PM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 0 transfersDirect | |
This is the last bus of the day. | |||||
Find all the dates and times for this journey
Compare prices and tickets Bari to San Donato Milanese by train, bus, or flight
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.
May 22
May 23
May 24
May 25
May 26
May 27
May 28
Why should you book Bari to San Donato Milanese buses with Omio?
Why book with Omio vs Marino Autolinee?
- Compare with other providers: On Omio, you can not only buy tickets for Marino Autolinee, but also compare tickets for the likes of FlixBus or Itabus to find the best option for your trip from Bari to San Donato Milanese.
- Designed for International Travelers: Omio is in your language including 24/7 customer service and offers multiple payment options, including PayPal, credit cards, and bank transfer, in your preferred currency.
- Compare all your options: Omio allows you to compare Marino Autolinee with all available travel options, which are train, bus and flight to ensure you get the best deal for traveling from Bari to San Donato Milanese.
Why book with Omio over Checkmybus, Wanderu or Trainline?
- Compare with other providers: On Omio, you can also compare tickets for the likes of FlixBus or Itabus to find the best option for your trip from Bari to San Donato Milanese.
- Multiple modes of transport: Omio allows you to compare travel options including train, bus and flight to find the ideal travel option from Bari to San Donato Milanese.
Journey information
Overview: Bus from Bari to San Donato Milanese
Buses from Bari to San Donato Milanese run on average 24 times per day, taking around 11h 4m. Cheap bus tickets for this journey start at $23 (€19) if you book in advance.
There are 8 buses per day. The earliest bus runs at 00:10, the last at 23:50. The fastest bus covers the 483 miles (778 km) distance in 10h 30m.
Distance 483 miles (778 km) |
Average bus duration 11h 4m |
Cheapest ticket price $23 (€19) |
Buses per day 24 |
Direct buses 8 |
Fastest bus 10h 30m |
First bus 12:10 AM |
Last bus 11:50 PM |
Cheapest Month Jan |
Cheapest Day Fri |
High Season Apr - Jun |
Low Season Oct - Dec |
Best time to book 21 days |
Bus providers: Marino Autolinee, FlixBus, Itabus from Bari to San Donato MilaneseYou can travel by bus between Bari to San Donato Milanese with Marino Autolinee, FlixBus, Itabus for as low as $23 (€19). When you search for schedules and tickets, Omio will show you the best journey
Marino Autolinee
FlixBus
Itabus
FAQs: Bus from Bari to San Donato Milanese
Find answers to the most common questions about traveling from Bari to San Donato Milanese 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 San Donato Milanese, this guide helps you travel smarter and with confidence.

- Marino Autolinee
- Assistance
- Priority seating
- Accessible restrooms.
- FlixBus
- Assistance
- Priority boarding
- Wheelchair-accessible buses.
- Itabus
- Assistance
- Dedicated seating areas
- Accessible restrooms.
- Marino Autolinee
- You can cancel your ticket up to 24 hours before departure for a full refund. Cancellations within 24 hours incur a 50% fee.
- FlixBus
- You can cancel your ticket up to 15 minutes before departure and receive a voucher for future travel. Refund requests for delays over 120 minutes are possible.
- Itabus
- You can cancel your ticket up to 24 hours before departure for a partial refund. Changes allowed for a fee.
- Marino Autolinee
- One carry-on bag up to 10kg (55x40x20 cm) and one checked bag up to 20kg (80x50x30 cm).
- FlixBus
- One carry-on bag up to 7kg (42x30x18 cm) and one checked bag up to 20kg (80x50x30 cm).
- Itabus
- One carry-on bag up to 10kg and one checked bag up to 20kg.
- Marino Autolinee
- 10€ per additional bag up to 20 kg.
- FlixBus
- Additional luggage can be purchased for a fee.
- Itabus
- 5€ per additional bag.
- Marino Autolinee
- Small pets allowed in carriers
- larger pets must be leashed and muzzled.
- FlixBus
- Small pets in carriers allowed
- guide dogs travel for free.
- Itabus
- Small pets allowed in carriers
- larger pets must be leashed and muzzled.
popular bus stations
Popular bus stations from Bari to San Donato Milanese
- Free Wi-Fi
- Available outside the station.
- Ramps
- Available in the station.
- Bus: 10, 12, 13 Train: FR1
- 05:00-23:00
- Free Wi-Fi
- Available outside the arrivals terminal.
- Elevators, ramps
- Available in the station.
- Bus: 16, 33 Train: FR2
- 05:00-23:00
- Free Wi-Fi
- Cafeteria Italiana (in the station)
- Fast Food Express (in the station)
- Trattoria del Corso (0.5 km).
- Available outside the main entrance.
- Elevators, ramps
- Available in the station.
- Bus: 10, 12, 13 Train: FR1, FR2
Most popular bus connections from Bari
More options for your journey from Bari to San Donato Milanese
Here are some other resources that might have the information you need
