There are 12 ways to get from Porto to St. Moritz by plane, train, bus, or car
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly to Zurich Airport, train
best- Fly from Francisco De Sá Carneiro Airport (OPO) to Zurich Airport (ZRH)plane OPO - ZRH
- Take the train from Zürich HB to Churtrain
- Take the train from Chur to St. Moritztrain
9h 10mCHF 103–265Fly to Milano Malpensa Airport, train, bus
cheapest- Fly from Francisco De Sá Carneiro Airport (OPO) to Milano Malpensa Airport (MXP)plane OPO - MXP
- Take the train from Malpensa Aeroporto T1 to Milano Centraletrain
- Take the train from Milano Centrale to Colicotrain
- Take the bus from Chiavenna, Stazione to St. Moritz, Bahnhofbus
11h 36mCHF 48–176Train, bus via Geneva
- Take the train from Porto Campanha to Coimbra-Btrain Ic / ...
- Take the bus from Coimbra to Geneva - Bus Stationbus
- Take the train from Nyon to Churtrain Ic
- Take the train from Chur to St. Moritztrain Gex / ...
36h 18mCHF 242–452Drive 2,026 km
- Drive from Porto to St. Moritzcar 2,026 km
22h 6mCHF 326–471Fly to Milan Linate Airport, train, bus
- Fly from Francisco De Sá Carneiro Airport (OPO) to Milan Linate Airport (LIN)plane OPO - LIN
- Take the train from Monza to Colicotrain
- Take the bus from Chiavenna, Stazione to St. Moritz, Bahnhofbus
11h 4mCHF 50–233Fly to Basel, train
- Fly from Francisco De Sá Carneiro Airport (OPO) to Basel (BSL)plane OPO - BSL
- Take the train from Basel SBB to Churtrain
- Take the train from Chur to St. Moritztrain
11h 5mCHF 100–362Fly to Il Caravaggio International Airport, train, bus
- Fly from Francisco De Sá Carneiro Airport (OPO) to Il Caravaggio International Airport (BGY)plane OPO - BGY
- Take the train from Milano Centrale to Colicotrain
- Take the bus from Chiavenna, Stazione to St. Moritz, Bahnhofbus
11h 25mCHF 78–305Fly to Geneva International Airport, train
- Fly from Francisco De Sá Carneiro Airport (OPO) to Geneva International Airport (GVA)plane OPO - GVA
- Take the train from Genève-Aéroport to Zürich HBtrain
- Take the train from Zürich HB to Churtrain
- Take the train from Chur to St. Moritztrain
12h 44mCHF 145–382Bus, train
- Take the bus from Porto to Martignybus
- Take the train from Martigny to Brigtrain Ir
- Take the train from Brig to St. Moritztrain 902 / ...
38h 48mBus, train via Lyon
- Take the bus from Porto - Hospital de São João to Lyon, Perrache Bus Stationbus
- Take the bus from Lyon, Perrache Bus Station to Geneva - Bus stationbus
- Take the train from Genève to Brigtrain Ec / ...
- Take the train from Brig to St. Moritztrain 902 / ...
38h 59mTrain, bus
- Take the train from Porto Campanha to Coimbra-Btrain Ic / ...
- Take the bus from Coimbra to Zurich Bus Stationbus
- Take the train from Zürich HB to Churtrain Ic3 / ...
- Take the train from Chur to St. Moritztrain Gex / ...
39h 2mCHF 203–323Bus
- Take the bus from Porto - Terminal Intermodal de Campanhã to Estação Rodoviária de Viseubus
- Take the bus from Viseu to Bernbus
- Take the bus from Bern to Bregenz bus stationbus 106
- Take the bus from Bregenz bus station to Chur station train stationbus 076
- Take the bus from Chur, Postautostation to St. Moritz, Bahnhofbus 182
40h 25mCHF 129–190
Porto to St. Moritz by train, foot, and bus
Questions & Answers
The cheapest way to get from Porto to St. Moritz is to fly and train and bus which costs SFr 45 - SFr 180 and takes 11h 36m.
The fastest way to get from Porto to St. Moritz is to fly and train which takes 9h 10m and costs SFr 100 - SFr 270.
No, there is no direct bus from Porto to St. Moritz. However, there are services departing from Porto - Terminal Intermodal de Campanhã and arriving at St. Moritz, Bahnhof via Viseu, Bern, Bregenz bus station and Chur, Postautostation. The journey, including transfers, takes approximately 40h 25m.
The distance between Porto and St. Moritz is 1751 km. The road distance is 2026 km.
The best way to get from Porto to St. Moritz without a car is to train and bus via Geneva which takes 36h 18m and costs SFr 240 - SFr 460.
It takes approximately 9h 10m to get from Porto to St. Moritz, including transfers.
Porto to St. Moritz bus services, operated by Rede Expressos, depart from Porto - Terminal Intermodal de Campanhã station.
Porto to St. Moritz bus services, operated by Rede Expressos, arrive at Estação Rodoviária de Viseu station.
St. Moritz is 1h ahead of Porto. It is currently 7:14 AM in Porto and 8:14 AM in St. Moritz.
Yes, the driving distance between Porto to St. Moritz is 2026 km. It takes approximately 22h 6m to drive from Porto to St. Moritz.
What companies run services between Porto, Portugal and St. Moritz, Switzerland?
You can take a bus from Porto - Terminal Intermodal de Campanhã to St. Moritz, Bahnhof via Viseu, Bern, Bregenz bus station, Chur station train station, and Chur, Postautostation in around 40h 25m.
- Website
- easyjet.com
Flights from Francisco De Sá Carneiro Airport to Zurich Airport
- Ave. Duration
- 2h 27m
- When
- Monday, Friday, and Sunday
- Estimated price
- CHF 35–120
Flights from Francisco De Sá Carneiro Airport to Milan Linate Airport
- Ave. Duration
- 2h 30m
- When
- Monday, Thursday, Friday, and Sunday
- Estimated price
- CHF 30–190
Flights from Francisco De Sá Carneiro Airport to Milan Linate Airport via Paris Orly
- Ave. Duration
- 5h 25m
- When
- Thursday
- Estimated price
- CHF 30–190
Flights from Francisco De Sá Carneiro Airport to Basel
- Ave. Duration
- 2h 26m
- When
- Every day
- Estimated price
- CHF 40–220
Flights from Francisco De Sá Carneiro Airport to Basel via Bordeaux
- Ave. Duration
- 4h 15m
- When
- Friday
- Estimated price
- CHF 40–220
Flights from Francisco De Sá Carneiro Airport to Milano Malpensa Airport
- Ave. Duration
- 2h 25m
- When
- Tuesday and Saturday
- Estimated price
- CHF 26–85
Flights from Francisco De Sá Carneiro Airport to Geneva International Airport
- Ave. Duration
- 2h 16m
- When
- Every day
- Estimated price
- CHF 30–170
Flights from Francisco De Sá Carneiro Airport to Geneva International Airport via Nice
- Ave. Duration
- 5h
- When
- Sunday
- Estimated price
- CHF 30–170
Flights from Francisco De Sá Carneiro Airport to Geneva International Airport via Bordeaux
- Ave. Duration
- 5h 20m
- When
- Sunday
- Estimated price
- CHF 30–170
- Website
- swiss.com
Flights from Francisco De Sá Carneiro Airport to Zurich Airport
- Ave. Duration
- 2h 31m
- When
- Every day
- Estimated price
- CHF 50–130
Flights from Francisco De Sá Carneiro Airport to Geneva International Airport
- Ave. Duration
- 2h 15m
- When
- Every day
- Estimated price
- CHF 55–210
- Website
- flytap.com
Flights from Francisco De Sá Carneiro Airport to Zurich Airport
- Ave. Duration
- 2h 31m
- When
- Every day
- Estimated price
- CHF 50–130
Flights from Francisco De Sá Carneiro Airport to Geneva International Airport
- Ave. Duration
- 2h 15m
- When
- Every day
- Estimated price
- CHF 55–210
- Website
- iberia.com
Flights from Francisco De Sá Carneiro Airport to Milan Linate Airport via Madrid
- Ave. Duration
- 5h
- When
- Every day
- Estimated price
- CHF 75–180
Flights from Francisco De Sá Carneiro Airport to Geneva International Airport via Madrid
- Ave. Duration
- 4h 32m
- When
- Every day
- Estimated price
- CHF 45–190
- Website
- ryanair.com
Flights from Francisco De Sá Carneiro Airport to Il Caravaggio International Airport
- Ave. Duration
- 2h 40m
- When
- Every day
- Estimated price
- CHF 55–190
Flights from Francisco De Sá Carneiro Airport to Milano Malpensa Airport
- Ave. Duration
- 2h 40m
- When
- Thursday and Sunday
- Estimated price
- CHF 40–160
- Website
- comlux.com
Flights from Francisco De Sá Carneiro Airport to Zurich Airport
- Ave. Duration
- 2h 30m
- When
- Wednesday
- Estimated price
- CHF 85–550
- Website
- flexflight.dk
Flights from Francisco De Sá Carneiro Airport to Zurich Airport
- Ave. Duration
- 2h 30m
- When
- Wednesday
- Estimated price
- CHF 85–550
- Phone
- +41 848 446 688
- Website
- sbb.ch
Train from Zürich HB to Chur
- Ave. Duration
- 1h 14m
- Frequency
- Hourly
- Estimated price
- CHF 23–45
- Website
- https://www.sbb.ch/en
Train from Chur to St. Moritz
- Ave. Duration
- 1h 55m
- Frequency
- Once daily
- Estimated price
- CHF 35–60
- Website
- https://www.sbb.ch/en
Train from Nyon to Chur
- Ave. Duration
- 4h 8m
- Frequency
- Once daily
- Estimated price
- CHF 110–200
- Website
- https://www.sbb.ch/en
Train from Basel SBB to Chur
- Ave. Duration
- 2h 19m
- Frequency
- Every 3 hours
- Estimated price
- CHF 40–75
- Website
- https://www.sbb.ch/en
Train from Genève-Aéroport to Zürich HB
- Ave. Duration
- 3h 3m
- Frequency
- Hourly
- Estimated price
- CHF 50–95
- Website
- https://www.sbb.ch/en
Train from Martigny to Brig
- Ave. Duration
- 49 min
- Frequency
- Every 30 minutes
- Estimated price
- CHF 15–35
- Website
- https://www.sbb.ch/en
Train from Genève to Brig
- Ave. Duration
- 2h 27m
- Frequency
- Every 30 minutes
- Estimated price
- CHF 35–70
- Website
- https://www.sbb.ch/en
- Phone
- +41 58 580 70 70
- info@sob.ch
- Website
- sob.ch
Train from Zürich HB to Chur
- Ave. Duration
- 1h 36m
- Frequency
- Hourly
- Schedules at
- sob.ch
- Phone
- +41 81 288 65 65
- Website
- rhb.ch
Train from Chur to St. Moritz
- Ave. Duration
- 1h 55m
- Frequency
- Hourly
- Website
- https://www.rhb.ch/en/
- Phone
- +351 210 900 032
- Website
- cp.pt
Train from Porto Campanha to Coimbra-B
- Ave. Duration
- 1h 1m
- Frequency
- Hourly
- Estimated price
- CHF 4–19
- Website
- https://www.cp.pt/passageiros/en
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- trenord.it
Train from Monza to Colico
- Ave. Duration
- 1h 12m
- Frequency
- Hourly
- Estimated price
- CHF 4–6
- Website
- https://www.trenord.it/en/
Train from Milano Centrale to Colico
- Ave. Duration
- 1h 24m
- Frequency
- Hourly
- Estimated price
- CHF 6–8
- Website
- https://www.trenord.it/en/
Train from Malpensa Aeroporto T1 to Milano Centrale
- Ave. Duration
- 56 min
- Frequency
- Every 30 minutes
- Estimated price
- CHF 4–6
- Website
- https://www.trenord.it/en/
- Phone
- +49 (0) 7531 915109
- info@sbb-deutschland.de
- Website
- sbb-deutschland.de
Train from Basel SBB to Chur
- Ave. Duration
- 2h 15m
- Frequency
- 4 times a day
- Estimated price
- CHF 15–20
- Schedules at
- sbb-deutschland.de
- Phone
- +41 27 720 47 47
- info@regionalps.ch
- Website
- regionalps.ch
Train from Martigny to Brig
- Ave. Duration
- 1h 8m
- Frequency
- Hourly
- Estimated price
- CHF 25–51
- Schedules at
- regionalps.ch
- 2nd Class Ticket
- CHF 25–29
- 1st Class Ticket
- CHF 45–51
- Phone
- +41 81 288 65 65
- info@glacierexpress.ch
- Website
- glacierexpress.ch
Train from Brig to St. Moritz
- Ave. Duration
- 6h 15m
- Frequency
- 3 times a day
- Schedules at
- glacierexpress.ch
- Phone
- +3-389-268-0068
- Website
- blablacar.co.uk
Bus from Coimbra to Geneva - Bus Station
- Ave. Duration
- 24h 55m
- Frequency
- Once daily
- Estimated price
- CHF 90–130
- Website
- https://www.blablacar.co.uk/bus
Bus from Viseu to Bern
- Ave. Duration
- 25h 55m
- Frequency
- Once daily
- Estimated price
- CHF 95–130
- Website
- https://www.blablacar.co.uk/bus
Rome2Rio's guide to FlixBus
Contact Details
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Coimbra to Geneva - Bus Station
- Ave. Duration
- 28h 40m
- Frequency
- 3 times a week
- Estimated price
- CHF 110–170
- Website
- https://www.flixbus.co.uk
Bus from Porto to Martigny
- Ave. Duration
- 30h 35m
- Frequency
- 3 times a week
- Estimated price
- CHF 40–180
- Website
- https://www.flixbus.co.uk
Bus from Coimbra to Zurich Bus Station
- Ave. Duration
- 32h 50m
- Frequency
- 3 times a week
- Estimated price
- CHF 140–200
- Website
- https://www.flixbus.co.uk
Bus from Bern to Bregenz bus station
- Ave. Duration
- 4h 5m
- Frequency
- Twice daily
- Estimated price
- CHF 17–27
- Website
- https://www.flixbus.co.uk
Bus from Bregenz bus station to Chur station train station
- Ave. Duration
- 2h 5m
- Frequency
- Once daily
- Estimated price
- CHF 6–11
- Website
- https://www.flixbus.co.uk
- Phone
- +41 (0)848 818 818
- info@postauto.ch
- Website
- postauto.ch
Bus from Chiavenna, Stazione to St. Moritz, Bahnhof
- Ave. Duration
- 1h 38m
- Frequency
- Hourly
- Estimated price
- CHF 5–8
- Website
- https://www.postauto.ch
Bus from Chur, Postautostation to St. Moritz, Bahnhof
- Ave. Duration
- 2h 35m
- Frequency
- Once daily
- Estimated price
- CHF 7–10
- Website
- https://www.postauto.ch
- Phone
- (+351) 258 454 303
- info@barquense.com
- Website
- barquense.pt
Bus from Porto - Hospital de São João to Lyon, Perrache Bus Station
- Ave. Duration
- 24h 38m
- Frequency
- Once a week
- Estimated price
- CHF 65–85
- Schedules at
- barquense.pt
- Book at
- barquense.pt
- Phone
- +34 910 207 007
- alsa@alsa.es
- Website
- alsa.com
Bus from Lyon, Perrache Bus Station to Geneva - Bus station
- Ave. Duration
- 2h
- Frequency
- 4 times a week
- Estimated price
- CHF 18–55
- Website
- https://www.alsa.com/en/
- Phone
- +351 21 75 24 524
- Website
- rede-expressos.pt
Bus from Porto - Terminal Intermodal de Campanhã to Estação Rodoviária de Viseu
- Ave. Duration
- 1h 45m
- Frequency
- Hourly
- Estimated price
- CHF 3–13
- Website
- https://rede-expressos.pt/en
Want to know more about travelling around Switzerland
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
Heading to Europe? Read this before you buy a Eurail Pass
Read the travel guide
Want to know more about Flixbus?
Read the travel guide
Italy Travel Guides
Read the travel guide
More Questions & Answers
There are 2073+ hotels available in St. Moritz.

































































