- Must visit
Accademia Carrara
Bergamo’s leading art museum, known for its strong collection of Italian Renaissance and Baroque painting, including works by Botticelli, Bellini, Raphael, and Moroni.
Cheapest price
$2
Average price
$2
Fastest journey
1 h
Average duration
1 h
Buses per day
2
Distance
44 km
The best way to find a cheap bus ticket from San Donato Milanese to Bergamo is to book your journey as far in advance as possible and to avoid traveling at rush hour.
The average ticket from San Donato Milanese to Bergamo will cost around $2 if you buy it on the day, but the cheapest tickets can be found for only $2.
Of the 2 buses that leave San Donato Milanese for Bergamo on Mon, Jun 22, 2 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
On Mon, Jun 22 the direct buses cover the 44 km distance in an average of 1 h but if you time it right, some buses will get you there in just 1 h .
On Mon, Jun 22 the slowest buses will take 1 h 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.




Omio recommends booking the bus as it is the most popular option from San Donato Milanese to Bergamo among Omio's users. If you are prioritising price take the bus with prices starting from $2. For those with little time consider booking a bus which can get you there in 1h 6m. The ticket price range depends on the travel mode: a bus costs an average of $2, and a train costs an average of $8.
Distance: 27 miles (44 km)
Most popular Bus | Train | Driving |
|---|---|---|
$3 Average price Cheapest | $8 Average price | $16 Average price (fuel + tolls) |
1h 36m Average total duration Fastest 1h 6m Onboard + 30m Additional time* | 1h 37m Average total duration 1h 7m Onboard + 30m Additional time* | 47m Average total duration (door-to-door) |
![]() Most popular bus company | ![]() Most popular train company | Your own car or car rental |
Direct Options | Direct Options | Direct Options |
This is compared to other travel options from San Donato Milanese to Bergamo:
A bus is $6 (€5) less than a train for this route with tickets for a train from San Donato Milanese to Bergamo costing on average $8 (€7).
Other travel options to Bergamo take longer:
Train takes on average 1h 7m.
Tickets start at around $3 (€2) compared to roughly $16 (€13) in fuel and tolls — a saving of about $14 (€11). The journey takes 1h 6m versus 47m 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 Itabus, FlixBus.
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.
| Operator | Departure Time | Arrival Time | Duration | Departure days | Cheapest price |
|---|---|---|---|---|---|
Operator BlaBlaCar | Departure Time 02:30AM | Arrival Time 02:50AM | Duration 0h20 | Departure days Sun | Cheapest price $4 |
Operator Itabus | Departure Time 05:45AM | Arrival Time 06:45AM | Duration 1h00 | Departure days Mon, Wed, Thu, Fri | Cheapest price $2 |
Operator GoOpti | Departure Time 06:25AM | Arrival Time 07:25AM | Duration 1h00 | Departure days Sun | Cheapest price $120 |
Operator GoOpti | Departure Time 06:30AM | Arrival Time 07:30AM | Duration 1h00 | Departure days Sun | Cheapest price $186 |
Operator Itabus | Departure Time 06:45AM | Arrival Time 07:45AM | Duration 1h00 | Departure days Mon, Tue, Wed, Thu, Fri, Sat | Cheapest price $2 |
Operator GoOpti | Departure Time 06:45AM | Arrival Time 07:45AM | Duration 1h00 | Departure days Sun | Cheapest price $187 |
Operator GoOpti | Departure Time 07:00AM | Arrival Time 08:00AM | Duration 1h00 | Departure days Sun | Cheapest price $120 |
Operator BlaBlaCar | Departure Time 07:10AM | Arrival Time 07:30AM | Duration 0h20 | Departure days Sun | Cheapest price $5 |
Operator Itabus | Departure Time 07:15AM | Arrival Time 08:15AM | Duration 1h00 | Departure days Tue | Cheapest price $2 |
Operator FlixBus | Departure Time 07:25AM | Arrival Time 09:30AM | Duration 2h05 | Departure days Sun | Cheapest price $6 |
Operator Itabus | Departure Time 07:45AM | Arrival Time 08:45AM | Duration 1h00 | Departure days Sun | Cheapest price $2 |
Operator GoOpti | Departure Time 08:00AM | Arrival Time 09:00AM | Duration 1h00 | Departure days Sun | Cheapest price $120 |
Operator FlixBus | Departure Time 08:00AM | Arrival Time 09:10AM | Duration 1h10 | Departure days Wed | Cheapest price $4 |
Operator Itabus | Departure Time 08:15AM | Arrival Time 09:15AM | Duration 1h00 | Departure days Sun | Cheapest price $2 |
Operator FlixBus | Departure Time 08:15AM | Arrival Time 09:30AM | Duration 1h15 | Departure days Sun | Cheapest price $6 |
Operator FlixBus | Departure Time 09:00AM | Arrival Time 10:10AM | Duration 1h10 | Departure days Sun | Cheapest price $7 |
Operator GoOpti | Departure Time 10:00AM | Arrival Time 11:00AM | Duration 1h00 | Departure days Sun | Cheapest price $86 |
Operator FlixBus | Departure Time 12:00PM | Arrival Time 01:10PM | Duration 1h10 | Departure days Sun | Cheapest price $13 |
Operator GoOpti | Departure Time 02:00PM | Arrival Time 03:00PM | Duration 1h00 | Departure days Sun | Cheapest price $86 |
Operator FlixBus | Departure Time 02:30PM | Arrival Time 03:40PM | Duration 1h10 | Departure days Sun | Cheapest price $7 |
Operator FlixBus | Departure Time 04:15PM | Arrival Time 05:10PM | Duration 0h55 | Departure days Sun | Cheapest price $7 |
Operator GoOpti | Departure Time 06:00PM | Arrival Time 08:00PM | Duration 2h00 | Departure days Sun | Cheapest price $181 |
Operator FlixBus | Departure Time 06:00PM | Arrival Time 06:45PM | Duration 0h45 | Departure days Sat | Cheapest price $5 |
Operator FlixBus | Departure Time 06:30PM | Arrival Time 07:40PM | Duration 1h10 | Departure days Tue, Wed, Fri | Cheapest price $4 |
Operator FlixBus | Departure Time 06:45PM | Arrival Time 07:30PM | Duration 0h45 | Departure days Thu, Fri | Cheapest price $3 |
Operator Itabus | Departure Time 06:55PM | Arrival Time 07:45PM | Duration 0h50 | Departure days Sun | Cheapest price $2 |
Operator GoOpti | Departure Time 07:00PM | Arrival Time 09:00PM | Duration 2h00 | Departure days Sun | Cheapest price $180 |
Operator BlaBlaCar | Departure Time 07:40PM | Arrival Time 08:10PM | Duration 0h30 | Departure days Sun | Cheapest price $5 |
Operator BlaBlaCar | Departure Time 07:50PM | Arrival Time 08:20PM | Duration 0h30 | Departure days Sun | Cheapest price $5 |
Operator FlixBus | Departure Time 08:00PM | Arrival Time 08:45PM | Duration 0h45 | Departure days Sun | Cheapest price $3 |
Operator FlixBus | Departure Time 08:30PM | Arrival Time 09:40PM | Duration 1h10 | Departure days Sun | Cheapest price $4 |
Operator GoOpti | Departure Time 08:30PM | Arrival Time 09:30PM | Duration 1h00 | Departure days Sun | Cheapest price $86 |
Operator BlaBlaCar | Departure Time 08:50PM | Arrival Time 09:10PM | Duration 0h20 | Departure days Sun | Cheapest price $2 |
Operator GoOpti | Departure Time 09:00PM | Arrival Time 11:00PM | Duration 2h00 | Departure days Sun | Cheapest price $209 |
Operator GoOpti | Departure Time 10:00PM | Arrival Time 12:00AM | Duration 2h00 | Departure days Sun | Cheapest price $208 |
Operator GoOpti | Departure Time 11:00PM | Arrival Time 01:00AM | Duration 2h00 | Departure days Sun | Cheapest price $208 |
Operator Itabus | Departure Time 11:10PM | Arrival Time 11:59PM | Duration 0h49 | Departure days Sun | Cheapest price $6 |
The table below shows live departures for San Donato Milanese to Bergamo buses for today, Sunday, June 21. You can also manually refresh the results below to see updated bus journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
![]() | 6:25 AM Milano, Via Luigi Russolo (Rogoredo) | 1h00 | 7:25 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 6:25 AM Milan, San Donato Autostazione | 1h00 | 7:25 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 6:30 AM Milano, Via Luigi Russolo (Rogoredo) | 1h00 | 7:30 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 6:45 AM Milan, San Donato Autostazione | 1h00 | 7:45 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 6:45 AM Milano, Via Luigi Russolo (Rogoredo) | 1h00 | 7:45 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 7:00 AM Milan, San Donato Autostazione | 1h00 | 8:00 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 7:00 AM Milano, Via Luigi Russolo (Rogoredo) | 1h00 | 8:00 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
FlixBus | 7:25 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 2h05 | 9:30 AM Bergamo, Autostazione | 0 transfersDirect | |
2422 | 7:45 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1h00 | 8:45 AM Bergamo, Autostazione | 0 transfersDirect | |
![]() | 8:00 AM Milano, Via Luigi Russolo (Rogoredo) | 1h00 | 9:00 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 8:00 AM Milan, San Donato Autostazione | 1h00 | 9:00 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
FlixBus | 8:15 AM Milano, Autostazione Lampugnano | 1h15 | 9:30 AM Bergamo, Autostazione | 0 transfersDirect | |
2418 | 8:15 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 1h00 | 9:15 AM Bergamo, Autostazione | 0 transfersDirect | |
FlixBus | 9:00 AM Milano, Autostazione Lampugnano | 1h10 | 10:10 AM Bergamo, Autostazione | 0 transfersDirect | |
![]() | 10:00 AM Milano, Via Luigi Russolo (Rogoredo) | 1h00 | 11:00 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 10:00 AM Milan, San Donato Autostazione | 1h00 | 11:00 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
FlixBus | 12:00 PM Milano, Autostazione Lampugnano | 1h10 | 1:10 PM Bergamo, Autostazione | 0 transfersDirect | |
![]() | 2:00 PM Milan, San Donato Autostazione | 1h00 | 3:00 PM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 2:00 PM Milano, Via Luigi Russolo (Rogoredo) | 1h00 | 3:00 PM Bergamo, Piazzale Marconi | 0 transfersDirect | |
FlixBus | 2:30 PM Milano, Autostazione Lampugnano | 1h10 | 3:40 PM Bergamo, Autostazione | 0 transfersDirect | |
FlixBus | 4:15 PM Milano, Autostazione Lampugnano | 0h55 | 5:10 PM Bergamo, Autostazione | 0 transfersDirect | |
![]() | 6:00 PM Milano, Via Luigi Russolo (Rogoredo) | 2h00 | 8:00 PM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 6:00 PM Milan, San Donato Autostazione | 2h00 | 8:00 PM Bergamo, Piazzale Marconi | 0 transfersDirect | |
2402 | 6:55 PM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 0h50 | 7:45 PM Bergamo, Autostazione | 0 transfersDirect | |
![]() | 7:00 PM Milan, San Donato Autostazione | 2h00 | 9:00 PM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 7:00 PM Milano, Via Luigi Russolo (Rogoredo) | 2h00 | 9:00 PM Bergamo, Piazzale Marconi | 0 transfersDirect | |
FlixBus | 8:00 PM Milano, Autostazione Lampugnano | 0h45 | 8:45 PM Bergamo, Autostazione | 0 transfersDirect | |
FlixBus | 8:30 PM Milano, Autostazione Lampugnano | 1h10 | 9:40 PM Bergamo, Autostazione | 0 transfersDirect | |
![]() | 8:30 PM Milano, Via Luigi Russolo (Rogoredo) | 1h00 | 9:30 PM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 8:30 PM Milan, San Donato Autostazione | 1h00 | 9:30 PM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 9:00 PM Milano, Via Luigi Russolo (Rogoredo) | 2h00 | 11:00 PM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 10:00 PM Milan, San Donato Autostazione | 2h00 | 12:00 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 10:00 PM Milano, Via Luigi Russolo (Rogoredo) | 2h00 | 12:00 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 11:00 PM Milan, San Donato Autostazione | 2h00 | 1:00 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
![]() | 11:00 PM Milano, Via Luigi Russolo (Rogoredo) | 2h00 | 1:00 AM Bergamo, Piazzale Marconi | 0 transfersDirect | |
2400 | 11:10 PM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 0h49 | 11:59 PM Bergamo, Autostazione | 0 transfersDirect | |
This is the last bus of the day. | |||||
Find all the dates and times for this journey
Compare bus and train 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 San Donato Milanese to Bergamo run on average 14 times per day, taking around 1h 6m. Cheap bus tickets for this journey start at $2 (€2) if you book in advance.
There are 12 buses per day. The earliest bus runs at 00:15, the last at 23:50. The fastest bus covers the 27 miles (44 km) distance in 45m.
Distance 27 miles (44 km) |
Average bus duration 1h 6m |
Cheapest ticket price $2 (€2) |
Buses per day 14 |
Direct buses 12 |
Fastest bus 45m |
First bus 12:15 AM |
Last bus 11:50 PM |
Cheapest Month Jun |
Cheapest Day Mon |
High Season Apr - Jun |
Low Season Oct - Dec |
Busiest Day Mon |
Least Busy Day Thu |
Best time to book 84 days |
Discover the best of Bergamo — top attractions, local food, transport tips, budget advice, and currency essentials. Plan your perfect Bergamo trip today.
Bergamo’s leading art museum, known for its strong collection of Italian Renaissance and Baroque painting, including works by Botticelli, Bellini, Raphael, and Moroni.
The city’s main modern and contemporary art gallery, opposite Accademia Carrara, with rotating exhibitions and an international profile.
A museum dedicated to composer Gaetano Donizetti, displaying manuscripts, memorabilia, and objects linked to Bergamo’s musical heritage.
The historic heart of Città Alta, surrounded by landmark buildings and consistently regarded as Bergamo’s most beautiful square.
Bergamo’s walled upper town, filled with medieval lanes, viewpoints, cafés, and monuments; the essential area for first-time visitors.
The UNESCO-listed Venetian Walls encircling the upper city, ideal for scenic walks and among the most photographed places in Bergamo.
Traditional stuffed pasta from Bergamo, usually filled with meat, breadcrumbs, cheese, and herbs, then dressed with butter, sage, and pancetta. It is one of the city’s signature dishes.
A hearty mountain polenta made with cornmeal, buckwheat flour, butter, and local cheeses such as Branzi or Bitto. It is strongly associated with Bergamo and nearby valleys.
A stuffed pasta from the Bergamo area, especially Parre, traditionally filled with cheese, breadcrumbs, butter, and spices rather than meat. It is a celebrated local variation of filled pasta.
Long-standing restaurant and pizzeria in Citta Alta, known for Bergamasque classics, pasta, and a lively historic setting popular with both locals and visitors.
Established traditional trattoria known for local Bergamo cuisine, homemade pasta, and hearty regional specialties in a warm, rustic atmosphere.
Popular Citta Alta venue with a refined but approachable style, known for quality local ingredients, cured meats, cheeses, and classic Lombard dishes.
Moderate by Italian standards: coffee and casual meals are reasonable, while hotels and tourist-area dining cost more.
Service is usually included or covered by a coperto. Tipping is not required, but rounding up or leaving EUR 1-5 for good service is appreciated; round up taxi fares.
Official public transport app
Bergamo Autostazione, Bergamo -> Bergamo Railway Station, Bergamo
Find answers to the most common questions about traveling from San Donato Milanese to Bergamo 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 Bergamo, this guide helps you travel smarter and with confidence.

Most San Donato Milanese to Bergamo buses use the Milano, Autostazione Lampugnano to Bergamo, Autostazione station pair, with some services arriving at Bergamo, Piazzale Marconi. Use this guide to compare San Donato Milanese and Bergamo bus stations on this route, check city-centre transport, alongside checking practicalities like bus station facilities and services.
Here are some other resources that might have the information you need