There are 11 ways to get from Oslo to Milan by train, plane, bus, car ferry, car, or car train
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train to Oslo Airport, Gardermoen, fly to Milan Linate Airport
best- Take the train from Oslo S to Oslo lufthavn stasjontrain
- Fly from Oslo Airport, Gardermoen (OSL) to Milan Linate Airport (LIN)plane OSL - LIN
7h 1m€115–557Train to Oslo Airport, Gardermoen, fly to Milano Malpensa Airport, train
cheapest- Take the train from Oslo S to Oslo lufthavn stasjontrain
- Fly from Oslo Airport, Gardermoen (OSL) to Milano Malpensa Airport (MXP)plane OSL - MXP
- Take the train from Malpensa Aeroporto T1 to Milano Porta Garibalditrain
6h 5m€68–360Train
- Take the train from Oslo S to København Htrain Ic
- Take the train from København H to Hamburg Hbftrain Ece / ...
- Take the train from Hamburg Hbf to Basel SBBtrain Ec
- Take the train from Basel SBB to Luganotrain Ec
- Take the train from Lugano to Milano Centraletrain
26h 14m€453–1,022Bus
- Take the bus from Oslo bussterminal to Hamburg, Zentraler Omnibusbahnhofbus N613
- Take the bus from Hamburg central bus station to Milanbus FlixBus N24
33h 41m€185–285Car ferry, train
- Take the carferry from Oslo Vipperangen to Port of Kielcarferry
- Take the train from Kiel Hbf to Hamburg-Altonatrain Re7
- Take the train from Hamburg-Altona to Zürich HBtrain Ice
- Take the train from Zürich HB to Como S. Giovannitrain Ec
- Take the train from Como S.Giovanni to Milano Porta Garibalditrain S11
37h 56m€658–1,238Train to Oslo Airport, Gardermoen, fly to Il Caravaggio International Airport, bus
- Take the train from Oslo S to Oslo lufthavn stasjontrain
- Fly from Oslo Airport, Gardermoen (OSL) to Il Caravaggio International Airport (BGY)plane OSL - BGY
- Take the bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoiabus
5h 55m€79–217Train to Sandefjord Airport, fly to Milan Linate Airport
- Take the train from Oslo S to Sandefjord stasjontrain
- Fly from Sandefjord Airport (TRF) to Milan Linate Airport (LIN)plane TRF - LIN
11h 10m€85–332Train to Sandefjord Airport, fly to Il Caravaggio International Airport, bus
- Take the train from Oslo S to Sandefjord stasjontrain
- Fly from Sandefjord Airport (TRF) to Il Caravaggio International Airport (BGY)plane TRF - BGY
- Take the bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoiabus
7h 49m€79–392Bus via Kunowice
- Take the bus from Oslo bussterminal to Słubicebus
- Take the bus from SŁUBICE, Port Świecko, Świecko 39 to Milano, Autostazione Lampugnanobus
39h 35m€214–520Drive 2,169.6 km
- Drive from Oslo to Milancar 2,169.6 km
20h 22m€417–602Drive, car train
- Drive from Oslo to Hamburg Hbfcar
- Take the cartrain from Hamburg Hbf to Lörrach Hbfcartrain
- Drive from Lörrach Hbf to Milancar
24h 18m€359–495
Oslo to Milan by train
Comparing Your Travel Options
The cheapest way to get from Oslo to Milan is to train and fly and bus which costs €75 - €220 and takes 5h 55m.
The fastest way to get from Oslo to Milan is to train and fly and bus which takes 5h 55m and costs €75 - €220.
No, there is no direct bus from Oslo to Milan. However, there are services departing from Oslo bussterminal and arriving at Milano, Autostazione Lampugnano via Hamburg central bus station and via omodeo via cechov. The journey, including transfers, takes approximately 33h 41m.
No, there is no direct train from Oslo to Milan. However, there are services departing from Oslo S and arriving at Milano Centrale via København H, Hamburg Hbf, Basel SBB and Lugano. The journey, including transfers, takes approximately 26h 14m.
The distance between Oslo and Milan is 1698 km. The road distance is 2169.6 km.
The best way to get from Oslo to Milan without a car is to train which takes 26h 14m and costs €450 - €1100.
It takes approximately 7h 1m to get from Oslo to Milan, including transfers.
Oslo to Milan bus services, operated by FlixBus, depart from Oslo bussterminal station.
Oslo to Milan train services, operated by Snälltåget, depart from Oslo S station.
The best way to get from Oslo to Milan is to train which takes 26h 14m and costs €450 - €1100. Alternatively, you can bus, which costs €180 - €290 and takes 33h 41m.
What companies run services between Oslo, Norway and Milan, Italy?
You can take a train from Oslo S to Milano Centrale via København H, Hamburg Hbf, Basel SBB, and Lugano in around 26h 14m. Alternatively, you can take a bus from Oslo bussterminal to Milano, Autostazione Lampugnano via Hamburg central bus station, Milan, and via omodeo via cechov in around 33h 41m.
- Website
- norwegian.com
Flights from Oslo Airport, Gardermoen to Milano Malpensa Airport
- Ave. Duration
- 2h 40m
- When
- Monday, Tuesday, Thursday, Friday, and Sunday
- Estimated price
- €70–200
Flights from Oslo Airport, Gardermoen to Il Caravaggio International Airport
- Ave. Duration
- 2h 35m
- When
- Thursday
- Estimated price
- €65–270
Flights from Oslo Airport, Gardermoen to Il Caravaggio International Airport via Stavanger
- Ave. Duration
- 5h 30m
- When
- Wednesday
- Estimated price
- €70–290
Flights from Oslo Airport, Gardermoen to Il Caravaggio International Airport via Bergen
- Ave. Duration
- 5h 30m
- When
- Wednesday
- Estimated price
- €75–300
- Website
- flysas.com
Flights from Oslo Airport, Gardermoen to Milan Linate Airport via Copenhagen
- Ave. Duration
- 4h 25m
- When
- Saturday
- Estimated price
- €110–550
Flights from Oslo Airport, Gardermoen to Milano Malpensa Airport
- Ave. Duration
- 2h 45m
- When
- Monday, Wednesday, Thursday, and Sunday
- Estimated price
- €60–700
Flights from Oslo Airport, Gardermoen to Milano Malpensa Airport via Copenhagen
- Ave. Duration
- 4h 35m
- When
- Every day
- Estimated price
- €60–700
Flights from Sandefjord Airport to Milan Linate Airport via Copenhagen
- Ave. Duration
- 7h 55m
- When
- Saturday
- Estimated price
- €100–430
- Website
- lufthansa.com
Flights from Oslo Airport, Gardermoen to Milan Linate Airport via Frankfurt
- Ave. Duration
- 5h 11m
- When
- Every day
- Estimated price
- €95–330
Flights from Oslo Airport, Gardermoen to Milan Linate Airport via Munich
- Ave. Duration
- 7h
- When
- Every day
- Estimated price
- €95–330
Flights from Sandefjord Airport to Milan Linate Airport via Bergen, Frankfurt
- Ave. Duration
- 9h 15m
- When
- Every day
- Estimated price
- €130–470
- Website
- easyjet.com
Flights from Oslo Airport, Gardermoen to Milan Linate Airport via Copenhagen
- Ave. Duration
- 4h 40m
- When
- Monday, Wednesday, Thursday, and Friday
- Estimated price
- €130–490
Flights from Sandefjord Airport to Milan Linate Airport via Copenhagen
- Ave. Duration
- 6h 40m
- When
- Monday to Friday
- Estimated price
- €75–320
- Website
- ryanair.com
Flights from Sandefjord Airport to Il Caravaggio International Airport
- Ave. Duration
- 2h 35m
- When
- Monday, Wednesday, Thursday, Friday, and Saturday
- Estimated price
- €65–320
Flights from Sandefjord Airport to Il Caravaggio International Airport via Wroclaw
- Ave. Duration
- 6h 10m
- When
- Wednesday, Friday, and Saturday
- Estimated price
- €65–320
- Website
- brusselsairlines.com
Flights from Oslo Airport, Gardermoen to Milan Linate Airport via Brussels
- Ave. Duration
- 5h 30m
- When
- Monday, Tuesday, Friday, and Saturday
- Estimated price
- €60–260
- Website
- swiss.com
Flights from Oslo Airport, Gardermoen to Milano Malpensa Airport via Zurich
- Ave. Duration
- 5h 30m
- When
- Every day
- Estimated price
- €65–260
- Website
- klm.com
Flights from Sandefjord Airport to Milan Linate Airport via Stavanger, Amsterdam Schiphol
- Ave. Duration
- 10h 5m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €100–480
- Phone
- +47 23 15 90 00
- flytoget@flytoget.no
- Website
- Flytoget AS
Train from Oslo S to Oslo lufthavn stasjon
- Ave. Duration
- 22 min
- Frequency
- Every 15 minutes
- Estimated price
- €21–23
- Website
- Flytoget AS
Train from Oslo S to Oslo lufthavn stasjon
- Ave. Duration
- 22 min
- Frequency
- Every 15 minutes
- Estimated price
- €21–23
- Website
- Flytoget AS
Train from Oslo S to Oslo lufthavn stasjon
- Ave. Duration
- 22 min
- Frequency
- Every 15 minutes
- Estimated price
- €21–23
- Website
- Flytoget AS
- Phone
- +47 61 05 19 10
- tog@vy.no
- Website
- Norwegian Railways (VY)
Train from Oslo S to Oslo lufthavn stasjon
- Ave. Duration
- 30 min
- Frequency
- Every 30 minutes
- Estimated price
- €4
- Website
- Norwegian Railways (VY)
- Book at
- Norwegian Railways (VY)
Train from Oslo S to Oslo lufthavn stasjon
- Ave. Duration
- 30 min
- Frequency
- Every 30 minutes
- Estimated price
- €4
- Website
- Norwegian Railways (VY)
- Book at
- Norwegian Railways (VY)
Train from Oslo S to Oslo lufthavn stasjon
- Ave. Duration
- 30 min
- Frequency
- Every 30 minutes
- Estimated price
- €4
- Website
- Norwegian Railways (VY)
- Book at
- Norwegian Railways (VY)
Train from Oslo S to Sandefjord stasjon
- Ave. Duration
- 1h 30m
- Frequency
- Hourly
- Estimated price
- €9
- Website
- Norwegian Railways (VY)
- Book at
- Norwegian Railways (VY)
Train from Oslo S to Sandefjord stasjon
- Ave. Duration
- 1h 30m
- Frequency
- Hourly
- Estimated price
- €9
- Website
- Norwegian Railways (VY)
- Book at
- Norwegian Railways (VY)
- Phone
- +46 40 669 62 00
- snalltaget@snalltaget.se
- Website
- Snälltåget
Train from Oslo S to København H
- Ave. Duration
- 6h 58m
- Frequency
- Once a week
- Estimated price
- €70–190
- Website
- Snälltåget
Train from København H to Hamburg Hbf
- Ave. Duration
- 4h 45m
- Frequency
- 3 times a week
- Estimated price
- €55–150
- Website
- Snälltåget
- Phone
- +47 70 13 14 15
- kundehenv@dsb.dk
- Website
- Danish Railways
Train from København H to Hamburg Hbf
- Ave. Duration
- 4h 42m
- Frequency
- Every 3 hours
- Estimated price
- €40
- Website
- Danish Railways
Train from Hamburg Hbf to Basel SBB
- Ave. Duration
- 6h 41m
- Frequency
- Once a week
- Estimated price
- €300–490
- Website
- Swiss Federal Railways (SBB CFF FFS)
Train from Basel SBB to Lugano
- Ave. Duration
- 2h 54m
- Frequency
- Every 3 hours
- Estimated price
- €90–150
- Website
- Swiss Federal Railways (SBB CFF FFS)
Train from Lugano to Milano Centrale
- Ave. Duration
- 1h 15m
- Frequency
- Hourly
- Estimated price
- €28–45
- Website
- Swiss Federal Railways (SBB CFF FFS)
Train from Hamburg-Altona to Zürich HB
- Ave. Duration
- 9h 36m
- Frequency
- Once daily
- Estimated price
- €340–550
- Website
- Swiss Federal Railways (SBB CFF FFS)
Train from Zürich HB to Como S. Giovanni
- Ave. Duration
- 2h 35m
- Frequency
- Hourly
- Estimated price
- €75–130
- Website
- Swiss Federal Railways (SBB CFF FFS)
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 2m
- Frequency
- Once daily
- Estimated price
- €17–28
- Website
- Swiss Federal Railways (SBB CFF FFS)
- Phone
- +49 (0) 7531 915109
- info@sbb-deutschland.de
- Website
- SBB GmbH
Train from Basel SBB to Lugano
- Ave. Duration
- 3h 21m
- Frequency
- Once daily
- Estimated price
- €17–22
- Schedules at
- SBB GmbH
- Phone
- +49 30 2970
- Website
- Deutsche Bahn Regio (DB Regional)
Train from Kiel Hbf to Hamburg-Altona
- Ave. Duration
- 1h 7m
- Frequency
- Every 4 hours
- Estimated price
- €19–80
- Website
- Deutsche Bahn Regio (DB Regional)
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- Trenord
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 1m
- Frequency
- Hourly
- Estimated price
- €4–6
- Website
- Trenord
Train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
- Ave. Duration
- 44 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–6
- Website
- Trenord
- Phone
- +49 (0) 221 800 20 820
- info@urlaubs-express.de
- Website
- Urlaubs-Express (UEX)
Car train from Hamburg Hbf to Lörrach Hbf
- Ave. Duration
- 10h
- Frequency
- Once a week
- Estimated price
- €100–120
- Website
- Urlaubs-Express (UEX)
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- Flixbus
Bus from Oslo bussterminal to Hamburg, Zentraler Omnibusbahnhof
- Ave. Duration
- 14h 25m
- Frequency
- 5 times a week
- Estimated price
- €80–130
- Website
- Flixbus
Bus from Hamburg central bus station to Milan
- Ave. Duration
- 17h 45m
- Frequency
- Once daily
- Estimated price
- €100–160
- Website
- Flixbus
- customerservices@terravision.eu
- Website
- TERRAVISION
Bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoia
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–23
- Website
- TERRAVISION
Bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoia
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–23
- Website
- TERRAVISION
- Phone
- 035.319366
- ticket@orioshuttle.com
- Website
- orioshuttle.com
Bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoia
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €11–14
- Schedules at
- orioshuttle.com
Bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoia
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €11–14
- Schedules at
- orioshuttle.com
- Phone
- +48 77 443 44 44
- bilety@sindbad.pl
- Website
- Sindbad
Bus from Oslo bussterminal to Słubice
- Ave. Duration
- 21h 50m
- Frequency
- Once a week
- Estimated price
- €110–260
- Website
- Sindbad
Bus from SŁUBICE, Port Świecko, Świecko 39 to Milano, Autostazione Lampugnano
- Ave. Duration
- 16h 45m
- Frequency
- Twice a week
- Estimated price
- €100–260
- Website
- Sindbad
- Phone
- +45 99 56 19 00
- Website
- Color Line AS
Car ferry from Oslo Vipperangen to Port of Kiel
- Ave. Duration
- 20h
- Frequency
- Once daily
- Estimated price
- €221–450
- Website
- Color Line AS
- Car
- €450
- No Car
- €221
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
How to plan an amazing trip around Scandinavia
Read the travel guide
Getting to Milan from the airport
Read the travel guide
Booking & Getting There
Oslo to Milan bus services, operated by FlixBus, arrive at Hamburg, Zentraler Omnibusbahnhof station.
Oslo to Milan train services, operated by Snälltåget, arrive at København H station.
Yes, the driving distance between Oslo to Milan is 2170 km. It takes approximately 20h 22m to drive from Oslo to Milan.
Book your Oslo to Milan train tickets online with Omio.
Book your Oslo to Milan bus tickets online with Omio.
There are 13827+ hotels available in Milan.















































