There are 7 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, bus
best- Take the train from Olten to Zürich HBtrain Ic5 / ...
- Take the bus from ZÜRICH, Carparkplatz am Sihlquai to Milano - Famagostabus
3h 58mBus, line 560 bus
cheapest- Take the bus from Olten Station to Aresebus
- Take the bus from V.le Sempione Via Matteotti to qt8 m1bus 560
10h 26m€32–45Train
- Take the train from Olten to Luganotrain Ic21 / ...
- Take the train from Lugano to Milano Centraletrain Re80
4h 27m€86–245Drive 295.5 km
- Drive from Olten to Milancar 295.5 km
3h 14m€52–75Train to Zurich Airport, fly to Milano Malpensa Airport, train
- 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€93–247Train 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 44m€66–200Fly Basel to Milan Linate Airport
- Fly from Basel (BSL) to Milan Linate Airport (LIN)plane BSL - LIN
6h 24m€119–435
Olten to Milan by train
Questions & Answers
The cheapest way to get from Olten to Milan is to bus and line 560 bus which costs €30 - €45 and takes 10h 26m.
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 station to Milan. However, there are services departing from Olten Station and arriving at qt8 m1 via V.le Sempione Via Matteotti. The journey, including transfers, takes approximately 10h 26m.
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 27m.
The distance between Olten and Milan is 372 km. The road distance is 295.5 km.
The best way to get from Olten to Milan without a car is to train and bus which takes 3h 58m and costs .
It takes approximately 3h 58m to get from Olten to Milan, including transfers.
Olten to Milan bus services, operated by Gruppo Di Maio, depart from Olten 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 27m and costs €85 - €250. Alternatively, you can bus and line 560 bus, which costs €30 - €45 and takes 10h 26m, you could also fly, which costs €110 - €440 and takes 6h 24m.
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 27m. Alternatively, you can take a bus from Olten Station to Duomo M1 via Arese, V.le Sempione Via Matteotti, qt8 m1, and Qt8 in around 10h 26m.
- Website
- lufthansa.com
Flights from Basel to Milan Linate Airport via Frankfurt
- Ave. Duration
- 3h 50m
- When
- Every day
- Estimated price
- €70–750
Flights from Basel to Milan Linate Airport via Munich
- Ave. Duration
- 4h 15m
- When
- Monday to Saturday
- Estimated price
- €70–700
- Website
- swiss.com
Flights from Zurich Airport to Milano Malpensa Airport
- Ave. Duration
- 55 min
- When
- Every day
- Estimated price
- €55–330
- Website
- easyjet.com
Flights from Basel to Milan Linate Airport via Split
- Ave. Duration
- 4h 30m
- When
- Friday and Sunday
- Estimated price
- €130–290
Flights from Basel to Milan Linate Airport via Figari
- Ave. Duration
- 4h 40m
- When
- Saturday
- Estimated price
- €130–290
- Website
- ethiopianairlines.com
Flights from Zurich Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- €95–160
- Website
- airdolomiti.it
Flights from Basel to Milan Linate Airport via Frankfurt
- Ave. Duration
- 3h 15m
- When
- Sunday
- Estimated price
- €160–750
- Website
- austrian.com
Flights from Basel to Milan Linate Airport via Vienna
- Ave. Duration
- 3h 50m
- When
- Monday to Friday
- Estimated price
- €150–370
- Website
- airfrance.com
Flights from Basel to Milan Linate Airport via Paris Charles de Gaulle
- Ave. Duration
- 5h 35m
- When
- Monday, Wednesday, Friday, and Sunday
- Estimated price
- €65–350
- Phone
- +41 848 446 688
- Website
- sbb.ch
Train from Olten to Zürich HB
- Ave. Duration
- 36 min
- Frequency
- Every 20 minutes
- Estimated price
- €20–65
- Website
- https://www.sbb.ch/en
Train from Olten to Lugano
- Ave. Duration
- 2h 28m
- Frequency
- Every 3 hours
- Estimated price
- €80–240
- Website
- https://www.sbb.ch/en
Train from Olten to Zürich Flughafen
- Ave. Duration
- 51 min
- Frequency
- Hourly
- Estimated price
- €24–75
- Website
- https://www.sbb.ch/en
Train from Olten to Bellinzona
- Ave. Duration
- 2h 12m
- Frequency
- Every 3 hours
- Estimated price
- €70–220
- Website
- https://www.sbb.ch/en
Train from Bellinzona to Como S. Giovanni
- Ave. Duration
- 58 min
- Frequency
- Hourly
- Estimated price
- €19–60
- Website
- https://www.sbb.ch/en
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 2m
- Frequency
- Once daily
- Estimated price
- €17–55
- Website
- https://www.sbb.ch/en
- Phone
- +41 58 580 70 70
- Website
- sob.ch
Train from Olten to Zürich HB
- Ave. Duration
- 36 min
- Frequency
- Every 2 hours
- Estimated price
- €22–35
- Schedules at
- sob.ch
Train from Olten to Bellinzona
- Ave. Duration
- 3h 30m
- Frequency
- Every 3 hours
- Estimated price
- €55–85
- Schedules at
- sob.ch
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- trenord.it
Train from Lugano to Milano Centrale
- Ave. Duration
- 1h 15m
- Frequency
- Hourly
- Estimated price
- €6–8
- Website
- https://www.trenord.it/en/
Train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
- Ave. Duration
- 44 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
Train from Bellinzona to Como S. Giovanni
- Ave. Duration
- 58 min
- Frequency
- Hourly
- Estimated price
- €3–4
- Website
- https://www.trenord.it/en/
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 1m
- Frequency
- Hourly
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
- Phone
- +39 0362 185 0590
- info@onebus.it
- Website
- onebus.it
Bus from ZÜRICH, Carparkplatz am Sihlquai to Milano - Famagosta
- Ave. Duration
- 2h 22m
- Frequency
- Once a week
- Website
- https://onebus.it/
- Phone
- +39 0827 34 117
- info@gruppodimaio.it
- Website
- gruppodimaio.it
Bus from Olten Station to Arese
- Ave. Duration
- 6h 40m
- Frequency
- Twice a week
- Estimated price
- €28–40
- Schedules at
- gruppodimaio.it
- Phone
- 02.48.607.607
- Website
- atm.it
Bus from V.le Sempione Via Matteotti to qt8 m1
- Ave. Duration
- 2h 59m
- Frequency
- Hourly
- Estimated price
- €2–3
- Schedules at
- atm.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
Heading to Europe? Read this before you buy a Eurail Pass
Read the travel guide
Italian Lakes: Getting around by train
Read the travel guide
More Questions & Answers
Olten to Milan bus services, operated by Gruppo Di Maio, arrive at Arese 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 14379+ hotels available in Milan.


















