There are 6 ways to get from Olten to Milan by train, bus, car, or plane
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train
best- Take the train from Olten to Luganotrain Ic21 / ...
- Take the train from Lugano to Milano Centraletrain Re80 / ...
4h 26m€74–145Bus via Como
cheapest- Take the bus from Olten Station to Como Grandatebus
7h 30m€30–41Bus
- Take the bus from Olten Gosgerstrasse to Lugano Via Giacomo and Filippo Cianibus MarinoBus 252 / ...
- Take the bus from Lugano to Milano, Autostazione Lampugnanobus 076 / ...
5hDrive 295.5 km
- Drive from Olten to Milancar 295.5 km
3h 14m€51–74Train, fly
- Take the train from Olten to Zürich Flughafentrain
- Fly from Zurich Airport (ZRH) to Milano Malpensa Airport (MXP)plane ZRH - MXP
- Take the train from Malpensa Aeroporto T1 to Milano Porta Garibalditrain
3h 48m€90–234Train via Como
- Take the train from Olten to Bellinzonatrain Ec
- Take the train from Bellinzona to Como S. Giovannitrain S10 / ...
- Take the train from Como S.Giovanni to Milano Porta Garibalditrain S11
4h 59m€93–166
Olten to Milan by train
Questions & Answers
The cheapest way to get from Olten to Milan is to bus via Como which costs €30 - €45 and takes 7h 30m.
The fastest way to get from Olten to Milan is to drive which takes 3h 14m and costs €50 - €75.
No, there is no direct bus from Olten to Milan. However, there are services departing from Olten Gosgerstrasse and arriving at Milano, Autostazione Lampugnano via Lugano. The journey, including transfers, takes approximately 5h.
No, there is no direct train from Olten to Milan. However, there are services departing from Olten and arriving at Milano Centrale via Lugano. The journey, including transfers, takes approximately 4h 26m.
The distance between Olten and Milan is 291 km. The road distance is 295.5 km.
The best way to get from Olten to Milan without a car is to train which takes 4h 26m and costs €70 - €150.
It takes approximately 4h 26m to get from Olten to Milan, including transfers.
Olten to Milan bus services, operated by Marino Autolinee S.p.A., depart from Olten Gosgerstrasse station.
Olten to Milan train services, operated by Swiss Federal Railways (SBB CFF FFS), depart from Olten station.
The best way to get from Olten to Milan is to train which takes 4h 26m and costs €70 - €150. Alternatively, you can bus, which costs and takes 5h.
What companies run services between Olten, Switzerland and Milan, Italy?
You can take a train from Olten to Milano Centrale via Lugano in around 4h 26m. Alternatively, you can take a bus from Olten Gosgerstrasse to Milano, Autostazione Lampugnano via Lugano Via Giacomo and Filippo Ciani and Lugano in around 5h.
- Website
- swiss.com
Flights from Zurich Airport to Milano Malpensa Airport
- Ave. Duration
- 55 min
- When
- Every day
- Estimated price
- €75–230
- Website
- ethiopianairlines.com
Flights from Zurich Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- €65–150
- Phone
- +41 848 446 688
- Website
- sbb.ch
Train from Olten to Lugano
- Ave. Duration
- 2h 28m
- Frequency
- Every 2 hours
- Estimated price
- €50–100
- Website
- https://www.sbb.ch/en
Train from Lugano to Milano Centrale
- Ave. Duration
- 1h 15m
- Frequency
- Hourly
- Estimated price
- €23–45
- Website
- https://www.sbb.ch/en
Train from Olten to Zürich Flughafen
- Ave. Duration
- 52 min
- Frequency
- Hourly
- Estimated price
- €20–40
- Website
- https://www.sbb.ch/en
Train from Olten to Bellinzona
- Ave. Duration
- 2h 12m
- Frequency
- Every 2 hours
- Estimated price
- €65–120
- Website
- https://www.sbb.ch/en
Train from Bellinzona to Como S. Giovanni
- Ave. Duration
- 58 min
- Frequency
- Hourly
- Estimated price
- €16–29
- Website
- https://www.sbb.ch/en
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 49 min
- Frequency
- Twice a week
- Estimated price
- €23–45
- Website
- https://www.sbb.ch/en
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- trenord.it
Train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
- Ave. Duration
- 42 min
- Frequency
- Hourly
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
Train from Bellinzona to Como S. Giovanni
- Ave. Duration
- 1h 4m
- Frequency
- Hourly
- Estimated price
- €3–4
- Website
- https://www.trenord.it/en/
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 6m
- Frequency
- Hourly
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
- Phone
- +39 02-72494949
- Website
- malpensaexpress.it
Train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
- Ave. Duration
- 42 min
- Frequency
- Hourly
- Estimated price
- €15
- Website
- https://www.malpensaexpress.it/en/
- Phone
- +41 58 580 70 70
- info@sob.ch
- Website
- sob.ch
Train from Olten to Bellinzona
- Ave. Duration
- 3h 30m
- Frequency
- Every 4 hours
- Schedules at
- sob.ch
- Phone
- +39 080 3112335
- info@marinobus.it
- Website
- marinobus.it
Bus from Olten Gosgerstrasse to Lugano Via Giacomo and Filippo Ciani
- Ave. Duration
- 2h 50m
- Frequency
- Once a week
- Website
- https://marinobus.it/en/
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Lugano to Milano, Autostazione Lampugnano
- Ave. Duration
- 1h 10m
- Frequency
- Every 4 hours
- Estimated price
- €8–27
- Website
- https://www.flixbus.co.uk
- Phone
- +39 06 88 93 82 32
- Website
- itabus.it
Bus from Lugano to Milano, Autostazione Lampugnano
- Ave. Duration
- 1h 40m
- Frequency
- Once daily
- Estimated price
- €7–20
- Website
- https://www.itabus.it/en/home
- Phone
- +3-389-268-0068
- Website
- blablacar.co.uk
Bus from Lugano to Milano, Autostazione Lampugnano
- Ave. Duration
- 1h 10m
- Frequency
- Once daily
- Estimated price
- €8–16
- Website
- https://www.blablacar.co.uk/bus
- Phone
- +420 222 222 221
- info@regiojet.cz
- Website
- regiojet.com
Bus from Lugano to Milano, Autostazione Lampugnano
- Ave. Duration
- 1h 20m
- Frequency
- Once a week
- Estimated price
- €9–15
- Website
- https://regiojet.com/
- Phone
- +39 0827 34 117
- info@gruppodimaio.it
- Website
- gruppodimaio.it
Bus from Olten Station to Como Grandate
- Ave. Duration
- 6h 20m
- Frequency
- Twice a week
- Estimated price
- €26–40
- Schedules at
- gruppodimaio.it
Want to know more about travelling around Italy
Rome2Rio's Travel Guide series provide vital information for the global traveller. Filled with useful and timely travel information, the guides answer all the hard questions - such as 'How do I buy a ticket?', 'Should I book online before I travel? ', 'How much should I expect to pay?', 'Do the trains and buses have Wifi?' - to help you get the most out of your next trip.
Related travel guides
Italy Travel Guides
Read the travel guide
Italian Lakes: Getting around by train
Read the travel guide
Heading to Europe? Read this before you buy a Eurail Pass
Read the travel guide
More Questions & Answers
Olten to Milan bus services, operated by Marino Autolinee S.p.A., arrive at Lugano Via Giacomo and Filippo Ciani station.
Olten to Milan train services, operated by Swiss Federal Railways (SBB CFF FFS), arrive at Lugano station.
Yes, the driving distance between Olten to Milan is 295 km. It takes approximately 3h 14m to drive from Olten to Milan.
Book your Olten to Milan train tickets online with Omio.
Book your Olten to Milan bus tickets online with Omio.
There are 13213+ hotels available in Milan.




































