There are 8 ways to get from Porto to Madrid by plane, bus, train (Renfe), rideshare, train, 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 from Francisco De Sá Carneiro Airport
best- Fly from Francisco De Sá Carneiro Airport (OPO) to Adolfo Suárez Madrid–Barajas Airport (MAD)plane OPO - MAD
4h 9m€33–196Rideshare
cheapest- Take the rideshare from Porto to Madrid550.8 km
6h 14m€25–45Bus
- Take the bus from Porto - Terminal Intermodal de Campanhã to Estación Sur de Autobusesbus BlaBlaCar Bus
7h 6m€43–70Train (Renfe)
- Take the train from Porto Campanha to Porrinotrain Ic
- Take the train from Porrino to Ourensetrain Re
- Take the train from Ourense to Madrid Chamartíntrain Ave
8h 21m€87–166Train to Vigo, fly
- Take the train from Porto Campanha to Vigo Guixartrain
- Fly from Vigo (VGO) to Adolfo Suárez Madrid–Barajas Airport (MAD)plane VGO - MAD
6h 17m€61–277Bus, train
- Take the bus from Porto - Terminal Intermodal de Campanhã to Zamorabus
- Take the train from Zamora to Madrid Chamartíntrain Ave
7h 55m€89–120Bus via Callao
- Take the bus from Porto - Terminal Intermodal de Campanhã to Estación Sur de Autobusesbus
8h 15m€42–74Drive 551.6 km
- Drive from Porto to Madridcar 551.6 km
5h 39m€91–131
Porto to Madrid by bus
Comparing Your Travel Options
The cheapest way to get from Porto to Madrid is to rideshare which costs €25 - €45 and takes 6h 14m.
The fastest way to get from Porto to Madrid is to fly which takes 4h 9m and costs €30 - €200.
No, there is no direct bus from Porto to Madrid. However, there are services departing from Porto - Terminal Intermodal de Campanhã and arriving at Neptuno via Méndez Álvaro - Terminal. The journey, including transfers, takes approximately 7h 6m.
No, there is no direct train from Porto to Madrid. However, there are services departing from Porto Campanha and arriving at Sol via Porrino, Ourense and Madrid Chamartín. The journey, including transfers, takes approximately 8h 21m.
The distance between Porto and Madrid is 467 km. The road distance is 551.6 km.
The best way to get from Porto to Madrid without a car is to bus which takes 7h 6m and costs €40 - €70.
It takes approximately 4h 9m to get from Porto to Madrid, including transfers.
Porto to Madrid bus services, operated by BlaBlaCar Bus, depart from Porto - Terminal Intermodal de Campanhã station.
Porto to Madrid train services, operated by Renfe Viajeros, depart from Porto Campanha station.
The best way to get from Porto to Madrid is to fly which takes 4h 9m and costs €30 - €200. Alternatively, you can bus, which costs €40 - €70 and takes 7h 6m, you could also train, which costs €85 - €170 and takes 8h 21m.
What companies run services between Porto, Portugal and Madrid, Spain?
Iberia, Air Europa, and three other airlines fly from Francisco De Sá Carneiro Airport (OPO) to Adolfo Suárez Madrid–Barajas Airport (MAD) hourly. Alternatively, BlaBlaCar Bus operates a bus from Porto - Terminal Intermodal de Campanhã to Estación Sur de Autobuses once daily. Tickets cost €40–70 and the journey takes 6h 40m. Gipsyy Portugal also services this route twice daily.
- Website
- iberia.com
Flights from Francisco De Sá Carneiro Airport to Adolfo Suárez Madrid–Barajas Airport
- Ave. Duration
- 1h 20m
- When
- Every day
- Estimated price
- €26–120
Flights from Vigo to Adolfo Suárez Madrid–Barajas Airport
- Ave. Duration
- 1h 15m
- When
- Every day
- Estimated price
- €35–240
- Website
- ryanair.com
Flights from Francisco De Sá Carneiro Airport to Adolfo Suárez Madrid–Barajas Airport
- Ave. Duration
- 1h 15m
- When
- Every day
- Estimated price
- €30–200
- Website
- aireuropa.com
Flights from Francisco De Sá Carneiro Airport to Adolfo Suárez Madrid–Barajas Airport
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- €25–190
Flights from Vigo to Adolfo Suárez Madrid–Barajas Airport
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- €35–230
- Website
- flytap.com
Flights from Francisco De Sá Carneiro Airport to Adolfo Suárez Madrid–Barajas Airport
- Ave. Duration
- 1h 25m
- When
- Monday, Tuesday, Thursday, and Saturday
- Estimated price
- €100–240
Flights from Francisco De Sá Carneiro Airport to Adolfo Suárez Madrid–Barajas Airport via Lisboa
- Ave. Duration
- 3h 20m
- When
- Every day
- Estimated price
- €40–160
- Website
- ethiopianairlines.com
Flights from Francisco De Sá Carneiro Airport to Adolfo Suárez Madrid–Barajas Airport
- Ave. Duration
- 1h 25m
- When
- Monday, Tuesday, Thursday, and Saturday
- Estimated price
- €100–240
- Phone
- +34 91 232 03 20
- Website
- Renfe Viajeros
Train from Porto Campanha to Porrino
- Ave. Duration
- 2h
- Frequency
- Twice daily
- Estimated price
- €18–27
- Website
- Renfe Viajeros
Train from Porrino to Ourense
- Ave. Duration
- 1h 55m
- Frequency
- Twice daily
- Estimated price
- €13–19
- Website
- Renfe Viajeros
Train from Ourense to Madrid Chamartín
- Ave. Duration
- 2h 41m
- Frequency
- Every 4 hours
- Estimated price
- €55–85
- Website
- Renfe Viajeros
Train from Porto Campanha to Vigo Guixar
- Ave. Duration
- 2h 30m
- Frequency
- Twice daily
- Estimated price
- €21–35
- Website
- Renfe Viajeros
Train from Zamora to Madrid Chamartín
- Ave. Duration
- 1h 12m
- Frequency
- Every 4 hours
- Estimated price
- €29–45
- Website
- Renfe Viajeros
- Phone
- +34 91 232 03 20
- Website
- Renfe AVE
Train from Ourense to Madrid Chamartín
- Ave. Duration
- 2h 25m
- Frequency
- Every 3 hours
- Estimated price
- €65–120
- Website
- Renfe AVE
Train from Zamora to Madrid Chamartín
- Ave. Duration
- 1h 7m
- Frequency
- Every 4 hours
- Estimated price
- €30–60
- Website
- Renfe AVE
- Phone
- +3 318 576 2228
- Website
- BlaBlaCar Bus
Bus from Porto - Terminal Intermodal de Campanhã to Estación Sur de Autobuses
- Ave. Duration
- 6h 40m
- Frequency
- Once daily
- Estimated price
- €40–70
- Website
- BlaBlaCar Bus
- [email protected]
- Website
- gipsyy.com
Bus from Porto - Terminal Intermodal de Campanhã to Estación Sur de Autobuses
- Ave. Duration
- 7h 30m
- Frequency
- Twice daily
- Estimated price
- €58
- Schedules at
- gipsyy.com
- Phone
- +376 806 555
- [email protected]
- Website
- Cooperativa Interurbana Andorrana
Bus from Porto - Terminal Intermodal de Campanhã to Zamora
- Ave. Duration
- 5h 40m
- Frequency
- Twice a week
- Estimated price
- €59
- Website
- Cooperativa Interurbana Andorrana
- Phone
- +351 21 75 24 524
- Website
- Rede Expressos
Bus from Porto - Terminal Intermodal de Campanhã to Estación Sur de Autobuses
- Ave. Duration
- 7h 30m
- Frequency
- 3 times a day
- Estimated price
- €35–70
- Website
- Rede Expressos
- Phone
- +3 318 576 2228
- Website
- BlaBlaCar
Rideshare from Porto to Madrid
- Ave. Duration
- 6h 14m
- Frequency
- 3 times a week
- Estimated price
- €25–45
- Schedules at
- BlaBlaCar
Want to know more about travelling around Spain
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
Booking & Getting There
Porto to Madrid bus services, operated by BlaBlaCar Bus, arrive at Estación Sur de Autobuses station.
Madrid is 1h ahead of Porto. It is currently 7:06 PM in Porto and 8:06 PM in Madrid.
Porto to Madrid train services, operated by Renfe Viajeros, arrive at Porrino station.
Yes, the driving distance between Porto to Madrid is 552 km. It takes approximately 5h 39m to drive from Porto to Madrid.
There are 6808+ hotels available in Madrid.
Check out Blablacar's carpooling service for rideshare options between Porto and Madrid. A great option if you don't have a driver's licence or want to avoid public transport.


























