There are 6 ways to get from Madrid to Porto by plane, train, bus, train (Renfe), 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 Francisco De Sá Carneiro Airport
best- Fly from Adolfo Suárez Madrid–Barajas Airport (MAD) to Francisco De Sá Carneiro Airport (OPO)plane MAD - OPO
4h 7m€31–106Bus
cheapest- Take the bus from Madrid to Portobus FlixBus N795
8h€10–40Train, bus
- Take the train from Madrid Chamartín to Zamoratrain Ave
- Take the bus from Zamora to Porto - Terminal Intermodal de Campanhãbus
7h 18m€31–95Train (Renfe)
- Take the train from Madrid Chamartín to Ourensetrain Ave
- Take the train from Ourense to Porrinotrain
- Take the train from Porrino to Porto Campanhatrain Ic
7h 39m€51–120Drive 553.9 km
- Drive from Madrid to Portocar 553.9 km
5h 43m€86–124Fly to Vigo, bus
- Fly from Adolfo Suárez Madrid–Barajas Airport (MAD) to Vigo (VGO)plane MAD - VGO
- Take the bus from Vigo to Portobus
5h 57m€42–157
Madrid to Porto by train and bus
Questions & Answers
The cheapest way to get from Madrid to Porto is to bus which costs €10 - €40 and takes 8h.
The fastest way to get from Madrid to Porto is to fly which takes 4h 7m and costs €30 - €110.
Yes, there is a direct bus departing from Madrid and arriving at Porto. Services depart every four hours, and operate every day. The journey takes approximately 8h.
No, there is no direct train from Madrid to Porto. However, there are services departing from Madrid Chamartín and arriving at Porto Campanha via Ourense and Porrino. The journey, including transfers, takes approximately 7h 39m.
The distance between Madrid and Porto is 458 km. The road distance is 553.9 km.
The best way to get from Madrid to Porto without a car is to train and bus which takes 7h 18m and costs €30 - €95.
It takes approximately 4h 7m to get from Madrid to Porto, including transfers.
Madrid to Porto bus services, operated by FlixBus, depart from Madrid station.
Madrid to Porto train services, operated by Renfe AVE, depart from Madrid Chamartín station.
The best way to get from Madrid to Porto is to fly which takes 4h 7m and costs €30 - €110. Alternatively, you can train, which costs €50 - €120 and takes 7h 39m, you could also bus, which costs €10 - €40 and takes 8h.
What companies run services between Madrid, Spain and Porto, Portugal?
Air Europa, Iberia, and three other airlines fly from Adolfo Suárez Madrid–Barajas Airport (MAD) to Francisco De Sá Carneiro Airport (OPO) every 2 hours. Alternatively, you can take a train from Madrid Chamartín to Porto Campanha via Ourense and Porrino in around 7h 39m.
- Website
- iberia.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Francisco De Sá Carneiro Airport
- Ave. Duration
- 1h 20m
- When
- Every day
- Estimated price
- €30–90
Flights from Adolfo Suárez Madrid–Barajas Airport to Vigo
- Ave. Duration
- 1h 20m
- When
- Every day
- Estimated price
- €29–120
- Website
- aireuropa.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Francisco De Sá Carneiro Airport
- Ave. Duration
- 1h 15m
- When
- Every day
- Estimated price
- €24–95
Flights from Adolfo Suárez Madrid–Barajas Airport to Vigo
- Ave. Duration
- 1h 5m
- When
- Every day
- Estimated price
- €30–130
- Website
- ryanair.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Francisco De Sá Carneiro Airport
- Ave. Duration
- 1h 20m
- When
- Monday, Wednesday, Thursday, Friday, Saturday, and Sunday
- Estimated price
- €27–120
- Website
- ethiopianairlines.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Francisco De Sá Carneiro Airport
- Ave. Duration
- 1h 25m
- When
- Monday, Tuesday, Thursday, and Saturday
- Estimated price
- €60–300
- Phone
- +34 91 232 03 20
- Website
- renfe.com
Train from Madrid Chamartín to Zamora
- Ave. Duration
- 1h 3m
- Frequency
- Every 4 hours
- Estimated price
- €28–75
- Website
- https://www.renfe.com/es/en
Train from Madrid Chamartín to Ourense
- Ave. Duration
- 2h 20m
- Frequency
- Every 4 hours
- Estimated price
- €29–80
- Website
- https://www.renfe.com/es/en
- Phone
- +34 91 232 03 20
- Website
- renfe.com
Train from Madrid Chamartín to Zamora
- Ave. Duration
- 1h 10m
- Frequency
- Every 4 hours
- Estimated price
- €30–65
- Website
- https://www.renfe.com/es/en
Train from Madrid Chamartín to Ourense
- Ave. Duration
- 2h 36m
- Frequency
- Every 4 hours
- Estimated price
- €35–70
- Website
- https://www.renfe.com/es/en
Train from Ourense to Porrino
- Ave. Duration
- 1h 16m
- Frequency
- Once daily
- Estimated price
- €9–24
- Website
- https://www.renfe.com/es/en
Train from Porrino to Porto Campanha
- Ave. Duration
- 2h 3m
- Frequency
- Twice daily
- Estimated price
- €13–18
- Website
- https://www.renfe.com/es/en
- Phone
- +351 21 75 24 524
- Website
- rede-expressos.pt
Bus from Zamora to Porto - Terminal Intermodal de Campanhã
- Ave. Duration
- 5h 15m
- Frequency
- 3 times a week
- Estimated price
- €2–20
- Website
- https://rede-expressos.pt/en
- Online ticket
- €2–20
- Phone
- +376 806 555
- cooperativa@interurbana.ad
- Website
- interurbana.ad
Bus from Zamora to Porto - Terminal Intermodal de Campanhã
- Ave. Duration
- 5h 30m
- Frequency
- Twice a week
- Website
- https://www.interurbana.ad/idioma-en
Rome2Rio's guide to FlixBus
Contact Details
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Vigo to Porto
- Ave. Duration
- 2h
- Frequency
- Every 4 hours
- Estimated price
- €10–22
- Website
- https://www.flixbus.co.uk
Bus from Madrid to Porto
- Ave. Duration
- 8h
- Frequency
- 3 times a day
- Estimated price
- €14–35
- Website
- https://www.flixbus.co.uk
- Website
- global.flixbus.com
Bus from Vigo to Porto
- Ave. Duration
- 2h 20m
- Frequency
- 5 times a day
- Schedules at
- global.flixbus.com
Bus from Madrid to Porto
- Ave. Duration
- 8h 40m
- Frequency
- Once daily
- Schedules at
- global.flixbus.com
- Phone
- +3-389-268-0068
- Website
- blablacar.co.uk
Bus from Vigo to Porto
- Ave. Duration
- 2h 45m
- Frequency
- Twice daily
- Estimated price
- €7–16
- Website
- https://www.blablacar.co.uk/bus
- hello@gipsyy.com
- Website
- gipsyy.com
Bus from Madrid to Porto
- Ave. Duration
- 7h 29m
- Frequency
- Twice daily
- Estimated price
- €10–40
- Schedules at
- gipsyy.com
Want to know more about travelling around Portugal
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
Train travel in Spain: A guide to Renfe
Read the travel guide
What are the different types of Renfe trains in Spain?
Read the travel guide
Want to know more about Flixbus?
Read the travel guide
More Questions & Answers
Madrid to Porto bus services, operated by FlixBus, arrive at Porto station.
Porto is 1h behind Madrid. It is currently 8:07 PM in Madrid and 7:07 PM in Porto.
Madrid to Porto train services, operated by Renfe AVE, arrive at Ourense station.
Yes, the driving distance between Madrid to Porto is 554 km. It takes approximately 5h 43m to drive from Madrid to Porto.
Book your Madrid to Porto bus tickets online with Omio and FlixBus.
There are 6244+ hotels available in Porto.






























