The cheapest and fastest trains from Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport
Cheapest price
£23
Average price
£23
Fastest journey
2 h 43 m
Average duration
2 h 43 m
Trains per day
93
Distance
76 km
The best way to find a cheap train ticket from Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport is to book your journey as far in advance as possible and to avoid travelling at rush hour.
The average ticket from Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport will cost around £23 if you buy it on the day, but you can find cheap train tickets today for only £23.
To travel from Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport you need to make at least one change.
Flibco+
Regionale TRENORD 2952
Flibco+
Regionale TRENORD 2960
Flibco+
Regionale TRENORD 2942
Flibco+
Regionale TRENORD 2942
Flibco+
Regionale TRENORD 2978
Flibco+
Regionale TRENORD 2928
Flibco+
Regionale TRENORD 2948
Flibco+
Regionale TRENORD 2964
Flibco+
Regionale TRENORD 2952
Flibco+
Regionale TRENORD 2968Travel Information
Compare coach and train for Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport
Omio recommends booking the coach as it is the most popular option from Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport among Omio's users. If you are prioritising price take the coach with prices starting from £18. For those with little time consider booking a coach which can get you there in 1h 37m. The ticket price range depends on the travel mode: a coach costs an average of £18, and a train costs an average of £36.
Distance: 76 km
Compare train with
| Train | Most popular Coach |
|---|---|
£39 Average Price | £21 Average Price Cheapest |
2h 17m Average total duration 1h 47m Onboard + 30m Additional time* | 2h 7m Average total duration Fastest 1h 37m Onboard + 30m Additional time* |
![]() Most popular train company | ![]() Most popular bus company |
Direct Options | Direct Options |
Live departures
Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport train times
The table below shows live departures for Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport trains for today, Monday 1 December. You can also manually refresh the results below to see updated train journeys.
| Provider | Departs | Duration | Arrives | Changes | Tickets |
|---|---|---|---|---|---|
Flibco+ Regionale TRENORD 2932 | 06:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 09:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2936 | 06:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 10:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2934 | 06:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 09:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2938 | 07:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 10:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2934 | 07:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 09:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2936 | 07:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 10:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2940 | 07:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 11:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2936 | 07:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 10:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2938 | 07:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 10:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2942 | 08:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 11:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2940 | 08:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 11:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2938 | 08:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 10:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2942 | 08:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 11:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2940 | 08:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 11:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2944 | 08:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 12:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2944 | 09:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 12:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2946 | 09:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 12:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2942 | 09:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 11:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2944 | 09:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 12:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2946 | 09:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 12:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2948 | 09:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 13:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2950 | 10:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 13:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2948 | 10:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 13:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2946 | 10:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 12:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2948 | 10:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 13:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2952 | 10:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 14:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2950 | 10:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 13:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2952 | 11:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 14:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2950 | 11:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 13:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2954 | 11:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 14:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2954 | 11:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 14:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2952 | 11:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 14:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2956 | 11:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 15:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2958 | 12:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 15:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2954 | 12:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 14:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2956 | 12:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 15:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2960 | 12:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 16:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2956 | 12:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 15:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2958 | 12:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 15:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2958 | 13:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 15:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2962 | 13:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 16:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2960 | 13:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 16:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2962 | 13:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 16:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2960 | 13:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 16:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2962 | 14:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 16:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2922 | 23:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 7h43 | 06:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2920 | 23:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 7h13 | 06:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2918 | 23:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 6h43 | 05:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2920 | 23:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 6h43 | 06:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2922 | 23:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 7h13 | 06:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2918 | 23:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 6h13 | 05:48 Malpensa Airport T1 | 1 change | |
| Tuesday 2 December | |||||
Flibco+ Regionale TRENORD 2918 | 00:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 5h43 | 05:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2922 | 00:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 6h43 | 06:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2920 | 00:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 6h13 | 06:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2920 | 00:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 5h43 | 06:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2918 | 00:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 5h13 | 05:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2922 | 00:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 6h13 | 06:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2920 | 03:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 06:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2922 | 03:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 06:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2918 | 03:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 05:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2928 | 04:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 08:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2926 | 04:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 07:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2924 | 04:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 07:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2928 | 05:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 08:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2930 | 05:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 08:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2932 | 05:35 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 09:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2934 | 06:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h43 | 09:48 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2932 | 06:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 3h13 | 09:18 Malpensa Airport T1 | 1 change | |
Flibco+ Regionale TRENORD 2930 | 06:05 Orio al Serio, Milan Bergamo Airport (Bus station) | 2h43 | 08:48 Malpensa Airport T1 | 1 change | |
This is the last train of the day. | |||||
Find all the dates and times for this journey
Compare prices and tickets Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport by coach or train
Compare coach 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.
01 Dec
02 Dec
03 Dec
04 Dec
05 Dec
06 Dec
07 Dec
08 Dec
09 Dec
10 Dec
11 Dec
12 Dec
13 Dec
14 Dec
15 Dec
16 Dec
17 Dec
18 Dec
19 Dec
20 Dec
21 Dec
Journey information
Overview: Train from Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport
Trains from Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport run on average 33 times per day, taking around 1h 47m. Cheap train tickets for this journey start at £36 but you can travel from only £18 by coach.
The earliest train runs at 02:35, the last at 18:15. The fastest train covers the 76 km distance in 4h 1m.
Distance 76 km |
Average train duration 1h 47m |
Cheapest ticket price £36 |
Trains per day 33 |
Fastest train 4h 1m |
First train 02:35 |
Last train 18:15 |
Train companies: Regionale, Malpensa Express from Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport trainsRegionale, Malpensa Express trains will get you between Milan Bergamo Orio al Serio Airport and Milan Malpensa Airport from £18. With over 1000 travel companies on Omio, you can find the best train times and tickets for your trip.
Regionale
Malpensa Express
FAQs: Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport train
Find answers to the most common questions about traveling from Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport 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 Malpensa Airport, this guide helps you travel smarter and with confidence.

More options for your journey from Milan Bergamo Orio al Serio Airport to Milan Malpensa Airport
Here are some other resources that might have the information you need


