There are 7 ways to get from Madrid to Douro Valley by train, plane, 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.
Train to Braganca Airport, fly to Vila Real Airport
best- Take the train from Madrid Chamartín to Puebla De Sanabria Llegadatrain
- Fly from Braganca Airport (BGC) to Vila Real Airport (VRL)plane BGC - VRL
4h 1m€106–351Bus
cheapest- Take the bus from Estación Sur de Autobuses to Estação Rodoviária de Viseubus
- Take the bus from Estação Rodoviária de Viseu to Central de Camionagem de Lamegobus 78 | Covilhã / ...
9h 11m€34–74Train
- Take the train from Madrid Chamartín to Ourensetrain Ave
- Take the train from Ourense to Porrinotrain Re
- Take the train from Porrino to Porto Campanhatrain Ic
- Take the train from Porto Campanha to Caldas De Moledotrain Re
13h 4m€100–183Drive 468.3 km
- Drive from Madrid to Douro Valleycar 468.3 km
5h 26m€75–108Fly Adolfo Suárez Madrid–Barajas Airport to Francisco De Sá Carneiro Airport, train
- Fly from Adolfo Suárez Madrid–Barajas Airport (MAD) to Francisco De Sá Carneiro Airport (OPO)plane MAD - OPO
- Take the train from Ermesinde to Caldas De Moledotrain
8h 48m€70–230Bus via Samodães
- Take the bus from Estación Sur de Autobuses to Estação Rodoviária de Viseubus Madrid
- Take the bus from Estação Rodoviária de Viseu to Central de Camionagem de Lamegobus 78 | Covilhã / ...
9h 15m€35–77Train, bus
- Take the train from Madrid Chamartín to Zamoratrain Ave
- Take the bus from Zamora to Terminal Rodoviário de Vila Realbus N1102
9h 24m€48–95
Braganca Airport (BGC) to Vila Real Airport (VRL) flights
Questions & Answers
The cheapest way to get from Madrid to Douro Valley is to bus which costs €30 - €75 and takes 9h 11m.
The fastest way to get from Madrid to Douro Valley is to train and fly which takes 4h 1m and costs €100 - €360.
No, there is no direct bus from Madrid to Douro Valley. However, there are services departing from Estación Sur de Autobuses and arriving at São Geão via Estação Rodoviária de Viseu and Central de Camionagem de Lamego. The journey, including transfers, takes approximately 9h 11m.
No, there is no direct train from Madrid to Douro Valley. However, there are services departing from Madrid Chamartín and arriving at Caldas De Moledo via Ourense, Porrino and Porto Campanha. The journey, including transfers, takes approximately 13h 4m.
The distance between Madrid and Douro Valley is 500 km. The road distance is 468.3 km.
The best way to get from Madrid to Douro Valley without a car is to bus which takes 9h 11m and costs €30 - €75.
It takes approximately 4h 1m to get from Madrid to Douro Valley, including transfers.
Madrid to Douro Valley bus services, operated by Rede Expressos, depart from Estación Sur de Autobuses station.
Madrid to Douro Valley train services, operated by Renfe AVE, depart from Madrid Chamartín station.
The best way to get from Madrid to Douro Valley is to bus which takes 9h 11m and costs €30 - €75. Alternatively, you can train, which costs €95 - €190 and takes 13h 4m.
What companies run services between Madrid, Spain and Douro Valley, Portugal?
You can take a bus from Estación Sur de Autobuses to Douro Valley via Estação Rodoviária de Viseu, Central de Camionagem de Lamego, and São Geão in around 9h 11m. Alternatively, you can take a train from Madrid Chamartín to Douro Valley via Ourense, Porrino, Porto Campanha, and Caldas De Moledo in around 13h 4m.
- 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
- €30–180
- Phone
- +34 91 232 03 20
- Website
- Renfe Viajeros
Train from Madrid Chamartín to Puebla De Sanabria Llegada
- Ave. Duration
- 1h 39m
- Frequency
- 5 times a day
- Estimated price
- €40–65
- Website
- Renfe Viajeros
Train from Madrid Chamartín to Ourense
- Ave. Duration
- 2h 36m
- Frequency
- Every 4 hours
- Estimated price
- €55–90
- Website
- Renfe Viajeros
Train from Ourense to Porrino
- Ave. Duration
- 1h 45m
- Frequency
- Twice daily
- Estimated price
- €13–20
- Website
- Renfe Viajeros
Train from Porrino to Porto Campanha
- Ave. Duration
- 2h 3m
- Frequency
- Twice daily
- Estimated price
- €18–28
- Website
- Renfe Viajeros
Train from Madrid Chamartín to Zamora
- Ave. Duration
- 1h 10m
- Frequency
- Every 4 hours
- Estimated price
- €29–45
- Website
- Renfe Viajeros
- Phone
- +351 21 75 24 524
- Website
- Rede Expressos
Bus from Estación Sur de Autobuses to Estação Rodoviária de Viseu
- Ave. Duration
- 5h 35m
- Frequency
- Twice daily
- Estimated price
- €29–65
- Website
- Rede Expressos
Bus from Estação Rodoviária de Viseu to Central de Camionagem de Lamego
- Ave. Duration
- 45 min
- Frequency
- Every 4 hours
- Estimated price
- €4–9
- Website
- Rede Expressos
Bus from Estação Rodoviária de Viseu to Central de Camionagem de Lamego
- Ave. Duration
- 45 min
- Frequency
- Every 4 hours
- Estimated price
- €4–9
- Website
- Rede Expressos
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 Douro Valley bus services, operated by Rede Expressos, arrive at Estação Rodoviária de Viseu station.
Madrid to Douro Valley train services, operated by Renfe AVE, arrive at Ourense station.
Yes, the driving distance between Madrid to Douro Valley is 468 km. It takes approximately 5h 26m to drive from Madrid to Douro Valley.
There are 789+ hotels available in Douro Valley.








