The cheapest and fastest trains from Bergamo to Milan
Cheapest price
$7
Average price
$8
Fastest journey
37 m
Average duration
37 m
Trains per day
125
Distance
45 km
The best way to find a cheap train ticket from Bergamo to Milan is to book your journey as far in advance as possible and to avoid travelling at rush hour.
The average ticket from Bergamo to Milan will cost around $8 if you buy it on the day, but you can find cheap train tickets today for only $7.
Of the 125 trains that leave Bergamo for Milan every day 55 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
These direct trains cover the 45 km distance in an average of 37 m but if you time it right, some trains will get you there in just 37 m .
The slowest trains will take 37 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.
Autobus TRENORD 1738A · Regionale TRENORD 25870
Autobus TRENORD 1720A · Regionale TRENORD 25834
Autobus TRENORD 1740A · Regionale TRENORD 25874
Autobus TRENORD 1724A · Regionale TRENORD 25842
Autobus TRENORD 70A · Regionale TRENORD 25870
Regionale TRENORD 2218
Regionale TRENORD 2230
Regionale TRENORD 2240
Regionale TRENORD 2226
Regionale TRENORD 2246Travel Information
Compare train and coach for Bergamo to Milan
Omio recommends booking the train as it is the most popular option from Bergamo to Milan among Omio's users. If you are prioritising price take the coach with prices starting from $2. For those with little time consider booking a train which can get you there in 53m. In case you are seeking to minimise your carbon footprint the train is your best bet as it emits only 0.0 - 0.0kg. The ticket price range depends on the travel mode: a coach costs an average of $2, and a train costs an average of $5.
Distance: 45 km
Compare train with
Most popular Train | Coach |
|---|---|
$7 Average Price | $5 Average Price Cheapest |
1h 23m Average total duration Fastest 53m Onboard + 30m Additional time* | 1h 29m Average total duration 59m Onboard + 30m Additional time* |
0.0 - 0.0kg CO2 emissions Lowest | 0.0 - 0.1kg CO2 emissions |
![]() Most popular train company | ![]() Most popular bus company |
Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
Live departures
Bergamo to Milan train times
The table below shows live departures for Bergamo to Milan trains for tomorrow, Wednesday, 7 January. You can also manually refresh the results below to see updated train journeys.
| Provider | Departs | Duration | Arrives | Changes | Tickets |
|---|---|---|---|---|---|
Regionale TRENORD 2212 | 4:00 am Bergamo station | 0h50 | 4:50 am Milan Centrale | 0 changesdirect | |
Regionale TRENORD 2212 | 4:00 am Bergamo station | 0h39 | 4:39 am Milano Lambrate | 0 changesdirect | |
Autobus TRENORD 18A · Regionale TRENORD 25818 | 4:01 am Bergamo Ospedale | 1h28 | 5:29 am Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 20A · Regionale TRENORD 25820 | 4:31 am Bergamo Ospedale | 1h28 | 5:59 am Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 22A · Regionale TRENORD 25822 · S9 TRENORD 24923 | 5:01 am Bergamo Ospedale | 1h45 | 6:46 am Milano Porta Romana | 2 changes | |
Autobus TRENORD 22A · Regionale TRENORD 25822 | 5:01 am Bergamo Ospedale | 1h28 | 6:29 am Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2214 | 5:02 am Bergamo station | 0h37 | 5:39 am Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2214 | 5:02 am Bergamo station | 0h48 | 5:50 am Milan Centrale | 0 changesdirect | |
Regionale TRENORD 2256 | 5:30 am Bergamo station | 1h02 | 6:32 am Milan Porta Garibaldi | 0 changesdirect | |
Regionale TRENORD 2256 | 5:30 am Bergamo station | 0h41 | 6:11 am Milano Lambrate | 0 changesdirect | |
Autobus TRENORD 24A · Regionale TRENORD 25824 | 5:31 am Bergamo Ospedale | 1h28 | 6:59 am Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 1716A · Regionale TRENORD 25826 | 5:38 am Bergamo Ospedale | 1h43 | 7:21 am Milano Greco Pirelli | 1 change | |
Autobus TRENORD 15A · Regionale TRENORD 2258 | 5:42 am Bergamo Ospedale | 1h14 | 6:56 am Milano Lambrate | 1 change | |
Autobus TRENORD 26A · Regionale TRENORD 25826 | 6:01 am Bergamo Ospedale | 1h20 | 7:21 am Milano Greco Pirelli | 1 change | |
Autobus TRENORD 26A · Regionale TRENORD 25826 · Regionale TRENORD 2815 | 6:01 am Bergamo Ospedale | 1h39 | 7:40 am Milan Centrale | 2 changes | |
Autobus TRENORD 26A · Regionale TRENORD 25826 | 6:01 am Bergamo Ospedale | 1h28 | 7:29 am Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2216 | 6:02 am Bergamo station | 0h48 | 6:50 am Milan Centrale | 0 changesdirect | |
Regionale TRENORD 2216 | 6:02 am Bergamo station | 0h37 | 6:39 am Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2258 | 6:13 am Bergamo station | 0h43 | 6:56 am Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2258 | 6:13 am Bergamo station | 1h05 | 7:18 am Milan Porta Garibaldi | 0 changesdirect | |
Autobus TRENORD 17A · Regionale TRENORD 2218 | 6:27 am Bergamo Ospedale | 1h12 | 7:39 am Milano Lambrate | 1 change | |
Autobus TRENORD 17A · Regionale TRENORD 2218 | 6:27 am Bergamo Ospedale | 1h23 | 7:50 am Milan Centrale | 1 change | |
Regionale TRENORD 2206 | 6:40 am Bergamo station | 0h50 | 7:30 am Milan Centrale | 0 changesdirect | |
Autobus TRENORD 30A · Regionale TRENORD 25830 | 7:01 am Bergamo Ospedale | 1h28 | 8:29 am Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2218 | 7:02 am Bergamo station | 0h37 | 7:39 am Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2218 | 7:02 am Bergamo station | 0h48 | 7:50 am Milan Centrale | 0 changesdirect | |
Autobus TRENORD 21A · Regionale TRENORD 2260 | 7:12 am Bergamo Ospedale | 1h09 | 8:21 am Milano Lambrate | 1 change | |
Regionale TRENORD 2260 | 7:40 am Bergamo station | 1h00 | 8:40 am Milan Porta Garibaldi | 0 changesdirect | |
Regionale TRENORD 2260 | 7:40 am Bergamo station | 0h41 | 8:21 am Milano Lambrate | 0 changesdirect | |
Autobus TRENORD 1720A · Regionale TRENORD 25834 | 7:46 am Bergamo Ospedale | 1h43 | 9:29 am Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 1719A · Regionale TRENORD 2262 | 8:01 am Bergamo Ospedale | 1h20 | 9:21 am Milano Lambrate | 1 change | |
Autobus TRENORD 34A · Regionale TRENORD 25834 | 8:01 am Bergamo Ospedale | 1h20 | 9:21 am Milano Greco Pirelli | 1 change | |
Autobus TRENORD 34A · Regionale TRENORD 25834 | 8:01 am Bergamo Ospedale | 1h28 | 9:29 am Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2220 | 8:02 am Bergamo station | 0h48 | 8:50 am Milan Centrale | 0 changesdirect | |
Regionale TRENORD 2220 | 8:02 am Bergamo station | 0h37 | 8:39 am Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2262 | 8:40 am Bergamo station | 1h00 | 9:40 am Milan Porta Garibaldi | 0 changesdirect | |
Regionale TRENORD 2262 | 8:40 am Bergamo station | 0h41 | 9:21 am Milano Lambrate | 0 changesdirect | |
Autobus TRENORD 27A · Regionale TRENORD 22634 · Regionale TRENORD 2624 | 8:42 am Bergamo Ospedale | 1h44 | 10:26 am Milano Lambrate | 2 changes | |
Autobus TRENORD 1722A · Regionale TRENORD 25838 | 8:46 am Bergamo Ospedale | 1h43 | 10:29 am Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 38A · Regionale TRENORD 25838 | 9:01 am Bergamo Ospedale | 1h28 | 10:29 am Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2222 | 9:02 am Bergamo station | 0h48 | 9:50 am Milan Centrale | 0 changesdirect | |
Regionale TRENORD 2222 | 9:02 am Bergamo station | 0h37 | 9:39 am Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 22634 · Regionale TRENORD 2624 | 9:18 am Bergamo station | 1h08 | 10:26 am Milano Lambrate | 1 change | |
Autobus TRENORD 31A · Regionale TRENORD 22638 · Regionale TRENORD 2626 | 9:42 am Bergamo Ospedale | 1h44 | 11:26 am Milano Lambrate | 2 changes | |
Autobus TRENORD 1724A · Regionale TRENORD 25842 | 9:46 am Bergamo Ospedale | 1h43 | 11:29 am Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 42A · Regionale TRENORD 25842 | 10:01 am Bergamo Ospedale | 1h28 | 11:29 am Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2224 | 10:02 am Bergamo station | 0h37 | 10:39 am Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2224 | 10:02 am Bergamo station | 0h48 | 10:50 am Milan Centrale | 0 changesdirect | |
Regionale TRENORD 22638 · Regionale TRENORD 2626 | 10:18 am Bergamo station | 1h08 | 11:26 am Milano Lambrate | 1 change | |
Autobus TRENORD 35A · Regionale TRENORD 22642 · Regionale TRENORD 2628 | 10:42 am Bergamo Ospedale | 1h44 | 12:26 pm Milano Lambrate | 2 changes | |
Autobus TRENORD 1726A · Regionale TRENORD 25846 | 10:46 am Bergamo Ospedale | 1h43 | 12:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 46A · Regionale TRENORD 25846 | 11:01 am Bergamo Ospedale | 1h28 | 12:29 pm Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2226 | 11:02 am Bergamo station | 0h37 | 11:39 am Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2226 | 11:02 am Bergamo station | 0h48 | 11:50 am Milan Centrale | 0 changesdirect | |
Regionale TRENORD 22642 · Regionale TRENORD 2628 | 11:18 am Bergamo station | 1h08 | 12:26 pm Milano Lambrate | 1 change | |
Autobus TRENORD 39A · Regionale TRENORD 22646 · Regionale TRENORD 10608 | 11:42 am Bergamo Ospedale | 1h31 | 1:13 pm Milano Lambrate | 2 changes | |
Autobus TRENORD 1728A · Regionale TRENORD 25850 | 11:46 am Bergamo Ospedale | 1h43 | 1:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 50A · Regionale TRENORD 25850 | 12:01 pm Bergamo Ospedale | 1h28 | 1:29 pm Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2228 | 12:02 pm Bergamo station | 0h48 | 12:50 pm Milan Centrale | 0 changesdirect | |
Regionale TRENORD 2228 | 12:02 pm Bergamo station | 0h37 | 12:39 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 22646 · Regionale TRENORD 10608 | 12:18 pm Bergamo station | 0h55 | 1:13 pm Milano Lambrate | 1 change | |
Autobus TRENORD 43A · Regionale TRENORD 22650 · Regionale TRENORD 2632 | 12:42 pm Bergamo Ospedale | 1h44 | 2:26 pm Milano Lambrate | 2 changes | |
Autobus TRENORD 1730A · Regionale TRENORD 25854 | 12:46 pm Bergamo Ospedale | 1h43 | 2:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 54A · Regionale TRENORD 25854 | 1:01 pm Bergamo Ospedale | 1h28 | 2:29 pm Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2230 | 1:02 pm Bergamo station | 0h37 | 1:39 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2230 | 1:02 pm Bergamo station | 0h48 | 1:50 pm Milan Centrale | 0 changesdirect | |
Regionale TRENORD 22650 · Regionale TRENORD 2632 | 1:18 pm Bergamo station | 1h08 | 2:26 pm Milano Lambrate | 1 change | |
Autobus TRENORD 47A · Regionale TRENORD 22654 · Regionale TRENORD 2634 | 1:42 pm Bergamo Ospedale | 1h44 | 3:26 pm Milano Lambrate | 2 changes | |
Autobus TRENORD 1732A · Regionale TRENORD 25858 | 1:46 pm Bergamo Ospedale | 1h43 | 3:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 58A · Regionale TRENORD 25858 | 2:01 pm Bergamo Ospedale | 1h28 | 3:29 pm Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2232 | 2:02 pm Bergamo station | 0h48 | 2:50 pm Milan Centrale | 0 changesdirect | |
Regionale TRENORD 2232 | 2:02 pm Bergamo station | 0h37 | 2:39 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 22654 · Regionale TRENORD 2634 | 2:18 pm Bergamo station | 1h08 | 3:26 pm Milano Lambrate | 1 change | |
Autobus TRENORD 51A · Regionale TRENORD 22658 · Regionale TRENORD 10610 | 2:42 pm Bergamo Ospedale | 1h31 | 4:13 pm Milano Lambrate | 2 changes | |
Autobus TRENORD 1734A · Regionale TRENORD 25862 | 2:46 pm Bergamo Ospedale | 1h43 | 4:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 62A · Regionale TRENORD 25862 | 3:01 pm Bergamo Ospedale | 1h20 | 4:21 pm Milano Greco Pirelli | 1 change | |
Autobus TRENORD 62A · Regionale TRENORD 25862 | 3:01 pm Bergamo Ospedale | 1h28 | 4:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 1733A · Regionale TRENORD 2276 | 3:01 pm Bergamo Ospedale | 1h19 | 4:20 pm Milano Lambrate | 1 change | |
Regionale TRENORD 2234 | 3:02 pm Bergamo station | 0h48 | 3:50 pm Milan Centrale | 0 changesdirect | |
Regionale TRENORD 2234 | 3:02 pm Bergamo station | 0h37 | 3:39 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 22658 · Regionale TRENORD 10610 | 3:18 pm Bergamo station | 0h55 | 4:13 pm Milano Lambrate | 1 change | |
Regionale TRENORD 2276 | 3:40 pm Bergamo station | 0h40 | 4:20 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2276 | 3:40 pm Bergamo station | 1h00 | 4:40 pm Milan Porta Garibaldi | 0 changesdirect | |
Autobus TRENORD 1736A · Regionale TRENORD 25866 | 3:46 pm Bergamo Ospedale | 1h43 | 5:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 66A · Regionale TRENORD 25866 | 4:01 pm Bergamo Ospedale | 1h20 | 5:21 pm Milano Greco Pirelli | 1 change | |
Autobus TRENORD 66A · Regionale TRENORD 25866 | 4:01 pm Bergamo Ospedale | 1h28 | 5:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 1735A · Regionale TRENORD 2278 | 4:01 pm Bergamo Ospedale | 1h19 | 5:20 pm Milano Lambrate | 1 change | |
Regionale TRENORD 2236 | 4:02 pm Bergamo station | 0h48 | 4:50 pm Milan Centrale | 0 changesdirect | |
Regionale TRENORD 2236 | 4:02 pm Bergamo station | 0h37 | 4:39 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2278 | 4:40 pm Bergamo station | 0h40 | 5:20 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2278 | 4:40 pm Bergamo station | 1h00 | 5:40 pm Milan Porta Garibaldi | 0 changesdirect | |
Autobus TRENORD 1738A · Regionale TRENORD 25870 | 4:46 pm Bergamo Ospedale | 1h43 | 6:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 1737A · Regionale TRENORD 2280 | 5:01 pm Bergamo Ospedale | 1h19 | 6:20 pm Milano Lambrate | 1 change | |
Autobus TRENORD 70A · Regionale TRENORD 25870 | 5:01 pm Bergamo Ospedale | 1h28 | 6:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 70A · Regionale TRENORD 25870 | 5:01 pm Bergamo Ospedale | 1h20 | 6:21 pm Milano Greco Pirelli | 1 change | |
Regionale TRENORD 2238 | 5:02 pm Bergamo station | 0h48 | 5:50 pm Milan Centrale | 0 changesdirect | |
Regionale TRENORD 2238 | 5:02 pm Bergamo station | 0h37 | 5:39 pm Milano Lambrate | 0 changesdirect | |
Autobus TRENORD 72A · Regionale TRENORD 25872 | 5:21 pm Bergamo Ospedale | 1h38 | 6:59 pm Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2280 | 5:40 pm Bergamo station | 1h04 | 6:44 pm Milan Porta Garibaldi | 0 changesdirect | |
Regionale TRENORD 2280 | 5:40 pm Bergamo station | 0h40 | 6:20 pm Milano Lambrate | 0 changesdirect | |
Autobus TRENORD 1740A · Regionale TRENORD 25874 | 5:46 pm Bergamo Ospedale | 1h43 | 7:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 74A · Regionale TRENORD 25874 | 6:01 pm Bergamo Ospedale | 1h20 | 7:21 pm Milano Greco Pirelli | 1 change | |
Autobus TRENORD 74A · Regionale TRENORD 25874 | 6:01 pm Bergamo Ospedale | 1h28 | 7:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 1739A · Regionale TRENORD 2282 | 6:01 pm Bergamo Ospedale | 1h19 | 7:20 pm Milano Lambrate | 1 change | |
Regionale TRENORD 2240 | 6:02 pm Bergamo station | 0h37 | 6:39 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2240 | 6:02 pm Bergamo station | 0h48 | 6:50 pm Milan Centrale | 0 changesdirect | |
Autobus TRENORD 65A · Regionale TRENORD 2242 | 6:17 pm Bergamo Ospedale | 1h22 | 7:39 pm Milano Lambrate | 1 change | |
Autobus TRENORD 65A · Regionale TRENORD 2242 | 6:17 pm Bergamo Ospedale | 1h33 | 7:50 pm Milan Centrale | 1 change | |
Regionale TRENORD 2282 | 6:40 pm Bergamo station | 1h00 | 7:40 pm Milan Porta Garibaldi | 0 changesdirect | |
Regionale TRENORD 2282 | 6:40 pm Bergamo station | 0h40 | 7:20 pm Milano Lambrate | 0 changesdirect | |
Autobus TRENORD 78A · Regionale TRENORD 25878 | 7:01 pm Bergamo Ospedale | 1h28 | 8:29 pm Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2242 | 7:02 pm Bergamo station | 0h37 | 7:39 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2242 | 7:02 pm Bergamo station | 0h48 | 7:50 pm Milan Centrale | 0 changesdirect | |
Autobus TRENORD 69A · Regionale TRENORD 2284 | 7:12 pm Bergamo Ospedale | 1h08 | 8:20 pm Milano Lambrate | 1 change | |
Regionale TRENORD 2284 | 7:40 pm Bergamo station | 0h40 | 8:20 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2284 | 7:40 pm Bergamo station | 1h00 | 8:40 pm Milan Porta Garibaldi | 0 changesdirect | |
Autobus TRENORD 71A · Regionale TRENORD 22678 · Regionale TRENORD 2646 | 7:42 pm Bergamo Ospedale | 1h44 | 9:26 pm Milano Lambrate | 2 changes | |
Autobus TRENORD 1744A · Regionale TRENORD 25882 | 7:46 pm Bergamo Ospedale | 1h43 | 9:29 pm Milan Porta Garibaldi | 1 change | |
Autobus TRENORD 82A · Regionale TRENORD 25882 | 8:01 pm Bergamo Ospedale | 1h28 | 9:29 pm Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2244 | 8:02 pm Bergamo station | 0h48 | 8:50 pm Milan Centrale | 0 changesdirect | |
Regionale TRENORD 2244 | 8:02 pm Bergamo station | 0h37 | 8:39 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 22678 · Regionale TRENORD 2646 | 8:18 pm Bergamo station | 1h08 | 9:26 pm Milano Lambrate | 1 change | |
Autobus TRENORD 86A · Regionale TRENORD 25886 | 9:01 pm Bergamo Ospedale | 1h28 | 10:29 pm Milan Porta Garibaldi | 1 change | |
Regionale TRENORD 2246 | 9:07 pm Bergamo station | 0h37 | 9:44 pm Milano Lambrate | 0 changesdirect | |
Regionale TRENORD 2246 | 9:07 pm Bergamo station | 0h48 | 9:55 pm Milan Centrale | 0 changesdirect | |
Find all the dates and times for this journey
Compare prices and tickets Bergamo to Milan by train or coach
Compare train and coach 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.
07 Jan
08 Jan
09 Jan
10 Jan
11 Jan
12 Jan
13 Jan
14 Jan
15 Jan
16 Jan
17 Jan
18 Jan
19 Jan
20 Jan
21 Jan
22 Jan
23 Jan
24 Jan
25 Jan
26 Jan
27 Jan
How far in advance should I book train tickets from Bergamo to Milan?
Journey information
Overview: Train from Bergamo to Milan
Trains from Bergamo to Milan run on average 78 times per day, taking around 53m. Cheap train tickets for this journey start at $5 but you can travel from only $2 by coach.
There are 27 trains per day. The earliest train runs at 00:15, the last at 23:48. The fastest train covers the 45 km distance in 48m.
Distance 45 km |
Average train duration 53m |
Cheapest ticket price $5 |
Trains per day 78 |
Direct trains 27 |
Fastest train 48m |
First train 00:15 |
Last train 23:48 |
Train companies: Regionale, Frecciarossa, Trenord from Bergamo to Milan trainsRegionale, Frecciarossa, Trenord trains will get you between Bergamo and Milan from $2. With over 1000 travel companies on Omio, you can find the best train times and tickets for your trip.
Regionale
Frecciarossa
Trenord
FAQs: Bergamo to Milan train
Find answers to the most common questions about traveling from Bergamo to Milan by train. 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 train, the cheapest option, or tips for making the most of your visit at Milan, this guide helps you travel smarter and with confidence.

When departing from Bergamo, you have various train station options to start your route from including Bergamo and Bergamo Ospedale. When arriving in Milan, you can end your trip in train stations like Milan Centrale, Milan Porta Garibaldi and Milan Rogoredo.
Passengers board the train most frequently from Bergamo, which is located around away from the city centre, and they get off the train at Milan Centrale, located away from the city centre.
popular train stations
Important Stations and Airports in Bergamo and Milan
- 6:00 AM - 10:00 PM Monday - Sunday
- Free
- The car park is open 7 days a week, 24 hours a day. Access via Piazzale Guglielmo Marconi.
- Ristorante La Bruschetta
- Osteria D'Ambrosio
- Outside the main entrance.
- Elevators, ramps, restrooms.
- €1
- Hotel Excelsior San Marco
- Mercure Bergamo Centro Palazzo Dolci
- Hotel Cappello d'Oro
- Located in the main hall
- 132 places, covered
- Avis
- Europcar
- Hertz
- Located in the main hall
- Free
- Hall 1: main entrance, platforms 1-6 for regional and long-distance trains
- Hall 2: ticket office and waiting area
- Bus: Several lines available
- Tram: Line T1
- Elevators, ramps.
- The station is a small facility primarily serving the nearby hospital area.
- Bus: Several local bus lines available
- Mon - Sun: 05:50 - 22:20
- Free WiFi in the station.
- Provided by KiPoint and located on the ground floor, on the side of Piazza Luigi di Savoia. It is open every day from 06:00 to 23:00.
- Venchi
- Panzera Coffee
- Burger King
- Bar Motta
- Caffè Napoli
- VyTA Boulangerie
- Spontini
- Starbucks
- Dispensa Emilia
- McDonald's
- & many more
- Station is wheelchair accessible, has elevators and the Sala Blu, Trenitalia's office of assistance for disabled travelers, is next to Platform 4.
- Glam Hotel Milano
- NYX MIlan
- iQ Hotel Milano
- Mon - Sun: 05:50 - 22:20
- Located next to the ticket office on the ground floor in the shopping gallery.
- Metro lines: M2 (green), M3 (yellow)
- Tram lines: 1
- Bus lines: 5, 9, 10, 42, 81, 87, 152, 728, N26, NM2, NM3, Air Bus, Orio Shuttle
- Train lines: FR, FB, EC, Thello, XP2, R28, IC, ICN, RV, R, Regio, Italo
- Free Wi-Fi in the station.
- Caffeteria Panni Caldi
- Princi
- Burgez
- Bricco Café
- U! Come tu mi vuoi
- Autogrill
- Culto
- Accessible facilities such as ticket machines, toilets, and ramps and additional assistance as needed from 07:45 to 22:30.
- Hotel NH Milano Palazzo Moscova
- AC Hotel by Marriott Milano
- Tocq Hotel
- Metro lines: M2, M5
- Bus lines: 43, 56, 70, 94
- Train lines: R21, R31, S1, S11, S2, S5, S7, S8
- 6:00 AM - 10:00 PM Monday - Sunday
- Free
- Parking is available near the station with access from Via Rombon.
- Ristorante Pizzeria Il Girasole
- Osteria Lambrate
- Outside the main entrance.
- Elevators, ramps.
- €1
- MEININGER Milano Lambrate
- Hotel Gamma
- Hotel Lugano
- Located in the main hall
- Avis
- Europcar
- Located in the main hall
- Free
- Hall 1: main entrance, platform 1-7 for trains to various destinations
- Hall 2: Metro connections
- Metro: Line M2
- Bus: Several lines available
- Tram: Line 19
More options for your journey from Bergamo to Milan
Here are some other resources that might have the information you need

