There are 7 ways to get from Porto to Madrid by bus, train (Renfe), rideshare, plane, 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.
Bus
best- Take the bus from Porto - TIC Campanhã to Madrid - South StationBlaBlaCar Bus
6h 40m€14–50Train (Renfe)
- Take the train from Porto Campanha to PorrinoIc
- Take the train from Porrino to OurenseRe
- Take the train from Ourense to Madrid ChamartínAve
8h 6m€49–122Rideshare
- Take the rideshare from Porto to Madrid551.3 km
6h 14m€24–40Fly from Francisco De Sá Carneiro Airport
- Fly from Francisco De Sá Carneiro Airport (OPO) to Adolfo Suárez Madrid–Barajas Airport (MAD)OPO - MAD
4h 2m€34–115Bus, train
- Take the bus from Porto - Terminal Intermodal de Campanhã to Zamora
- Take the train from Zamora to Madrid ChamartínAve
7h 5m€26–94Drive 551.2 km
- Drive from Porto to Madrid551.2 km
5h 37m€86–124Train to Vigo, fly
- Take the train from Porto Campanha to Vigo Guixar
- Fly from Vigo (VGO) to Adolfo Suárez Madrid–Barajas Airport (MAD)VGO - MAD
6h 4m€48–163
Porto to Madrid by bus
Questions & Answers
The cheapest way to get from Porto to Madrid is to bus which costs €14 - €50 and takes 6h 40m.
The fastest way to get from Porto to Madrid is to fly which takes 4h 2m and costs €30 - €120.
Yes, there is a direct bus departing from Porto - TIC Campanhã and arriving at Madrid - South Station station. Services depart four times a day, and operate every day. The journey takes approximately 6h 40m.
No, there is no direct train from Porto to Madrid. However, there are services departing from Porto Campanha and arriving at Madrid Chamartín via Porrino and Ourense. The journey, including transfers, takes approximately 8h 6m.
The distance between Porto and Madrid is 557 km. The road distance is 551.2 km.
The best way to get from Porto to Madrid without a car is to bus which takes 6h 40m and costs €14 - €50.
The bus from Porto - TIC Campanhã to Madrid - South Station takes 6h 40m including transfers and departs four times a day.
Porto to Madrid bus services, operated by BlaBlaCar Bus, depart from Porto - TIC 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 bus which takes 6h 40m and costs €14 - €50. Alternatively, you can train, which costs €45 - €130 and takes 8h 6m, you could also fly, which costs €30 - €120 and takes 4h 2m.
What companies run services between Porto, Portugal and Madrid, Spain?
BlaBlaCar Bus operates a bus from Porto - TIC Campanhã to Madrid - South Station twice daily. Tickets cost €14–35 and the journey takes 6h 40m. FlixBus also services this route twice daily. Alternatively, you can take a train from Porto Campanha to Madrid Chamartín via Porrino and Ourense in around 8h 6m.
- 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
- €30–90
Flights from Vigo to Adolfo Suárez Madrid–Barajas Airport
- Ave. Duration
- 1h 15m
- When
- Every day
- Estimated price
- €29–140
- 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
- €24–110
Flights from Vigo to Adolfo Suárez Madrid–Barajas Airport
- Ave. Duration
- 1h 8m
- When
- Every day
- Estimated price
- €30–140
- Website
- ryanair.com
Flights from Francisco De Sá Carneiro Airport to Adolfo Suárez Madrid–Barajas Airport
- Ave. Duration
- 1h 20m
- When
- Monday, Tuesday, Friday, Saturday, and Sunday
- Estimated price
- €30–120
- 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
- €65–300
Flights from Francisco De Sá Carneiro Airport to Adolfo Suárez Madrid–Barajas Airport via Lisboa
- Ave. Duration
- 3h 10m
- When
- Every day
- Estimated price
- €45–100
- 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
- €65–300
Rome2Rio's guide to Renfe Viajeros
Contact Details
- Phone
- +34 91 232 03 20
- Website
- renfe.com
Train from Porto Campanha to Porrino
- Ave. Duration
- 2h
- Frequency
- Twice daily
- Estimated price
- €13–18
- Website
- https://www.renfe.com/es/en
Train from Porrino to Ourense
- Ave. Duration
- 1h 43m
- Frequency
- Once daily
- Estimated price
- €10
- Website
- https://www.renfe.com/es/en
Train from Ourense to Madrid Chamartín
- Ave. Duration
- 2h 41m
- Frequency
- 5 times a day
- Estimated price
- €35–95
- Website
- https://www.renfe.com/es/en
Train from Zamora to Madrid Chamartín
- Ave. Duration
- 1h 12m
- Frequency
- 5 times a day
- Estimated price
- €25–70
- Website
- https://www.renfe.com/es/en
Train from Porto Campanha to Vigo Guixar
- Ave. Duration
- 2h 30m
- Frequency
- 3 times a day
- Estimated price
- €15–21
- Website
- https://www.renfe.com/es/en
Rome2Rio's guide to Renfe AVE
Contact Details
- Phone
- +34 91 232 03 20
- Website
- renfe.com
Train from Ourense to Madrid Chamartín
- Ave. Duration
- 2h 25m
- Frequency
- Every 4 hours
- Estimated price
- €26–95
- Website
- https://www.renfe.com/es/en
Train from Zamora to Madrid Chamartín
- Ave. Duration
- 1h 7m
- Frequency
- Every 4 hours
- Estimated price
- €23–75
- Website
- https://www.renfe.com/es/en
- Phone
- +3-389-268-0068
- Website
- blablacar.co.uk
Bus from Porto - TIC Campanhã to Madrid - South Station
- Ave. Duration
- 6h 40m
- Frequency
- Twice daily
- Estimated price
- €14–35
- Website
- https://www.blablacar.co.uk/bus
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Porto - TIC Campanhã to Madrid - South Station
- Ave. Duration
- 8h
- Frequency
- Twice daily
- Estimated price
- €19–50
- Website
- https://www.flixbus.co.uk
- Phone
- +351 21 75 24 524
- Website
- rede-expressos.pt
Bus from Porto - Terminal Intermodal de Campanhã to Zamora
- Ave. Duration
- 5h
- Frequency
- 3 times a week
- Estimated price
- €2–19
- Website
- https://rede-expressos.pt/en
- Online ticket
- €2–19
- Phone
- +376 806 555
- cooperativa@interurbana.ad
- Website
- interurbana.ad
Bus from Porto - Terminal Intermodal de Campanhã to Zamora
- Ave. Duration
- 5h 40m
- Frequency
- Twice a week
- Website
- https://www.interurbana.ad/idioma-en
- Phone
- +3 318 576 2228
- Website
- blablacar.com
Rideshare from Porto to Madrid
- Ave. Duration
- 6h 14m
- Frequency
- 3 times a week
- Estimated price
- €24–40
- Schedules at
- blablacar.com
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
Want to know more about Flixbus?
Read the travel guide
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
More Questions & Answers
Porto to Madrid bus services, operated by BlaBlaCar Bus, arrive at Madrid - South Station.
Madrid is 1h ahead of Porto. It is currently 6:46 AM in Porto and 7:46 AM in Madrid.
Porto to Madrid train services, operated by Renfe Viajeros, arrive at Porrino station.
Yes, the driving distance between Porto to Madrid is 551 km. It takes approximately 5h 37m to drive from Porto to Madrid.
Book your Porto to Madrid train tickets online with Omio.
Book your Porto to Madrid bus tickets online with Omio and FlixBus.
There are 6938+ 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.





























