There are 7 ways to get from Madrid to Porto by bus, train (Renfe), car, plane, train, or towncar
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Bus
best- Take the bus from Estación Sur de Autobuses to Porto - Terminal Intermodal de Campanhãbus BlaBlaCar Bus
6h 15m€35–95Fly to Francisco De Sá Carneiro Airport
cheapest- Fly from Adolfo Suárez Madrid–Barajas Airport (MAD) to Francisco De Sá Carneiro Airport (OPO)plane MAD - OPO
4h 7m€33–175Train (Renfe)
- Take the train from Madrid Chamartín to Pontevedratrain Ave
- Take the train from Redondela De Galicia to Porto Campanhatrain Ic
8h 12m€100–200Drive 553.8 km
- Drive from Madrid to Portocar 553.8 km
5h 43m€88–127Train, bus
- Take the train from Madrid Chamartín to Zamoratrain Ave
- Take the bus from Zamora to Penafielbus
- Take the train from Penafiel to Porto Sao Bentotrain 874 / ...
7h 46m€57–109Fly to Vigo, train
- Fly from Adolfo Suárez Madrid–Barajas Airport (MAD) to Vigo (VGO)plane MAD - VGO
- Take the train from Vigo Guixar to Porto Campanhatrain
6h 45m€66–221Train, towncar
- Take the train from Madrid Chamartín to Ourensetrain Ave
- Take a town car from Ourense to Porto - Aeroporto Francisco Sá Carneirotowncar
6h 56m€311–374
Madrid to Porto by bus
Questions & Answers
The cheapest way to get from Madrid to Porto is to bus which costs €35 - €95 and takes 6h 15m.
The fastest way to get from Madrid to Porto is to fly which takes 4h 7m and costs €30 - €180.
Yes, there is a direct bus departing from Estación Sur de Autobuses and arriving at Porto - Terminal Intermodal de Campanhã. Services depart five times a day, and operate every day. The journey takes approximately 6h 15m.
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 Pontevedra and Redondela De Galicia. The journey, including transfers, takes approximately 8h 12m.
The distance between Madrid and Porto is 559 km. The road distance is 553.8 km.
The best way to get from Madrid to Porto without a car is to bus which takes 6h 15m and costs €35 - €95.
The bus from Madrid, Estación Sur De Autobuses to Porto - Terminal Intermodal de Campanhã takes 6h 15m including transfers and departs five times a day.
Madrid to Porto bus services, operated by BlaBlaCar Bus, depart from Estación Sur de Autobuses 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 bus which takes 6h 15m and costs €35 - €95. Alternatively, you can train, which costs €100 - €200 and takes 8h 12m, you could also fly, which costs €30 - €180 and takes 4h 7m.
What companies run services between Madrid, Spain and Porto, Portugal?
BlaBlaCar Bus operates a bus from Estación Sur de Autobuses to Porto - Terminal Intermodal de Campanhã twice daily. Tickets cost €45–90 and the journey takes 6h 15m. Two other operators also service this route. Alternatively, you can take a train from Madrid Chamartín to Porto Campanha via Pontevedra and Redondela De Galicia in around 8h 12m.
- 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
- €27–130
Flights from Adolfo Suárez Madrid–Barajas Airport to Vigo
- Ave. Duration
- 1h 20m
- When
- Every day
- Estimated price
- €35–140
- 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
- €28–180
Flights from Adolfo Suárez Madrid–Barajas Airport to Vigo
- Ave. Duration
- 1h 7m
- When
- Every day
- Estimated price
- €40–180
- Website
- ryanair.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Francisco De Sá Carneiro Airport
- Ave. Duration
- 1h 19m
- When
- Every day
- Estimated price
- €29–150
- Website
- flytap.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Francisco De Sá Carneiro Airport
- Ave. Duration
- 1h 20m
- When
- Monday, Tuesday, Thursday, and Saturday
- Estimated price
- €85–300
Flights from Adolfo Suárez Madrid–Barajas Airport to Francisco De Sá Carneiro Airport via Lisboa
- Ave. Duration
- 3h 20m
- When
- Every day
- Estimated price
- €40–140
- Website
- ethiopianairlines.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Francisco De Sá Carneiro Airport
- Ave. Duration
- 1h 20m
- When
- Monday, Tuesday, Thursday, and Saturday
- Estimated price
- €85–300
- Phone
- +34 91 232 03 20
- Website
- renfe.com
Train from Madrid Chamartín to Pontevedra
- Ave. Duration
- 3h 53m
- Frequency
- Every 4 hours
- Estimated price
- €90–170
- Website
- https://www.renfe.com/es/en
Train from Madrid Chamartín to Zamora
- Ave. Duration
- 1h 7m
- Frequency
- Hourly
- Estimated price
- €35–65
- Website
- https://www.renfe.com/es/en
Train from Madrid Chamartín to Ourense
- Ave. Duration
- 2h 27m
- Frequency
- Hourly
- Estimated price
- €70–130
- Website
- https://www.renfe.com/es/en
- Phone
- +34 91 232 03 20
- Website
- renfe.com
Train from Madrid Chamartín to Pontevedra
- Ave. Duration
- 4h 5m
- Frequency
- Twice daily
- Estimated price
- €75–120
- Website
- https://www.renfe.com/es/en
Train from Redondela De Galicia to Porto Campanha
- Ave. Duration
- 2h 15m
- Frequency
- 4 times a day
- Estimated price
- €20–35
- Website
- https://www.renfe.com/es/en
Train from Madrid Chamartín to Zamora
- Ave. Duration
- 1h 10m
- Frequency
- Hourly
- Estimated price
- €29–45
- Website
- https://www.renfe.com/es/en
Train from Vigo Guixar to Porto Campanha
- Ave. Duration
- 2h 26m
- Frequency
- 4 times a day
- Estimated price
- €21–35
- Website
- https://www.renfe.com/es/en
Train from Madrid Chamartín to Ourense
- Ave. Duration
- 2h 36m
- Frequency
- Hourly
- Estimated price
- €55–90
- Website
- https://www.renfe.com/es/en
- Phone
- +351 210 900 032
- Website
- cp.pt
Train from Penafiel to Porto Sao Bento
- Ave. Duration
- 39 min
- Frequency
- Every 20 minutes
- Estimated price
- €4–8
- Website
- https://www.cp.pt/en/
- Phone
- +3 318 576 2228
- Website
- blablacar.co.uk
Bus from Estación Sur de Autobuses to Porto - Terminal Intermodal de Campanhã
- Ave. Duration
- 6h 15m
- Frequency
- Twice daily
- Estimated price
- €45–90
- Website
- https://www.blablacar.co.uk/bus
- Phone
- +351 21 75 24 524
- Website
- rede-expressos.pt
Bus from Estación Sur de Autobuses to Porto - Terminal Intermodal de Campanhã
- Ave. Duration
- 7h 30m
- Frequency
- 3 times a day
- Estimated price
- €40–95
- Website
- https://rede-expressos.pt/en
- [email protected]
- Website
- gipsyy.com
Bus from Estación Sur de Autobuses to Porto - Terminal Intermodal de Campanhã
- Ave. Duration
- 7h 29m
- Frequency
- Twice daily
- Estimated price
- €35–75
- Schedules at
- gipsyy.com
Rome2Rio's guide to FlixBus
Contact DetailsContact Details
- Phone
- +49 30 300 137 300
- [email protected]
- Website
- https://www.flixbus.fr
Bus from Zamora to Penafiel
- Ave. Duration
- 4h 50m
- Frequency
- 4 times a week
- Estimated price
- €24–40
- Website
- https://www.flixbus.co.uk
- Phone
- (+351) 220 971 653
- [email protected]
- Website
- vmtransfers.com
Towncar from Ourense to Porto - Aeroporto Francisco Sá Carneiro
- Ave. Duration
- 3h 11m
- Frequency
- On demand
- Estimated price
- €250
- Website
- https://www.vmtransfers.com/en/
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 BlaBlaCar Bus, arrive at Porto - Terminal Intermodal de Campanhã station.
Porto is 1h behind Madrid. It is currently 10:47 AM in Madrid and 9:47 AM in Porto.
Madrid to Porto train services, operated by Renfe AVE, arrive at Pontevedra 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 train tickets online with Omio.
Book your Madrid to Porto bus tickets online with Omio.
There are 6815+ hotels available in Porto.































