Travel Information
Compare train, bus, and flight for Madrid to Donostia-San Sebastian
Omio recommends booking the train as it is the most popular option from Madrid to Donostia-San Sebastian among Omio's users. If you are prioritising price take the train with prices starting from $24. For those with little time consider booking a flight which can get you there in 2h 40m. In case you are seeking to minimise your carbon footprint the train is your best bet as it emits only 0.1 - 0.3kg. The ticket price range depends on the travel mode: a train costs an average of $24, and a flight costs an average of $47.
Distance: 218 miles (352 km)
Compare train with
Most popular Train | Bus | Flight |
|---|---|---|
$57 Average price Cheapest | $60 Average price | $270 Average price |
6h 11m Average total duration 5h 41m Onboard + 30m Additional time* | 6h 52m Average total duration 6h 22m Onboard + 30m Additional time* | 5h 40m Average total duration Fastest 2h 40m Onboard + 3h 0m Additional time* |
0.1 - 0.3kg CO2 emissions Lowest | 0.4 - 0.9kg CO2 emissions | 1.1 - 2.1kg CO2 emissions |
![]() Most popular train company | ![]() Most popular bus company | ![]() Most popular airline |
Direct Options | Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
Travel optionsfrom Madrid to Donostia-San Sebastian
How to get from Madrid to Donostia-San Sebastian by train, bus or flight.
Our recommendation
The best way to travel from Madrid to Donostia-San Sebastian is by taking a train because it’s the best combination of price and speed.
040877:20 AM5h30Madrid Chamartín12:50 PMDonostia-San Sebastián$491One-way0 transfers
Cheapest
Normal7:00 AM7h00Madrid, Intercambiador de Avenida de América2:00 PMDonostia-San Sebastian, Estación de Autobuses$471One-way0 transfers
Fastest
IB44511:50 AM1h10Madrid Barajas Airport1:00 PMSan Sebastián Airport$4651One-way0 transfers
Other options
041675:37 PM5h15Madrid Chamartín10:52 PMDonostia-San Sebastián$491One-way0 transfers
180619:06 AM7h40Madrid Príncipe Pío4:46 PMDonostia-San Sebastián$701One-way0 transfers
04261 · 040877:04 AM5h46Madrid Chamartín12:50 PMDonostia-San Sebastián$751One-way1 transfer
Normal9:15 AM5h45Madrid, Terminal de autobuses T4 (Aeropuerto de Madrid)3:00 PMDonostia-San Sebastian, Estación de Autobuses$651One-way0 transfers
Normal9:00 AM6h00Madrid, Intercambiador de Avenida de América3:00 PMDonostia-San Sebastian, Estación de Autobuses$651One-way0 transfers
Normal7:15 AM6h45Madrid, Terminal de autobuses T4 (Aeropuerto de Madrid)2:00 PMDonostia-San Sebastian, Estación de Autobuses$651One-way0 transfers
IB4437:30 AM1h10Madrid Barajas Airport8:40 AMSan Sebastián Airport$4721One-way0 transfers
IB4497:40 PM1h10Madrid Barajas Airport8:50 PMSan Sebastián Airport$4721One-way0 transfers
Find all the dates and times for this journey by train, bus, flight, and ferry .
Compare prices and tickets Prices for trains, buses and flights
Compare train, bus, and flight prices over the next three weeks. See the best deals at a glance, find the lowest fares, and choose the option that fits your budget.
May 04
May 05
May 06
May 07
May 08
May 09
May 10
May 11
May 12
May 13
May 14
May 15
May 16
May 17
May 18
May 19
May 20
May 21
May 22
May 23
May 24
Travel from Madrid to San Sebastian
If you are traveling in Spain and want to visit the beaches of San Sebastian or sample the unique culture of the Basque Country, there are plenty of buses, trains, and flights from Madrid every day. Buses and trains take around the same amount of time to reach San Sebastian (between 5 and 7 hours). That leaves flying as easily the fastest route, at about 55 minutes; however, it will take approximately 4 hours to fly from Madrid to San Sebastian when travel time to and from Madrid and San Sebastian's airports is taken into consideration.
Trains from Madrid to San Sebastian | Buses from Madrid to San Sebastian | Flights from Madrid to San Sebastian
Madrid to San Sebastian Travel Comparison
Average Price |
Travel Time |
Cheapest Time to Book |
|
|---|---|---|---|
|
€40 |
5:10 h |
1 Week Ahead |
|
€43 |
5:23 h |
2 Months Ahead |
|
€241 |
0:55 h |
2 Months Ahead |
What is the best way to travel from Madrid to San Sebastian?
Cheapest way to travel from Madrid to San Sebastian
![]()
Taking the bus is the cheapest way to travel from Madrid to San Sebastian. Buses traveling from Madrid to San Sebastian depart from either Madrid's Estacion Sur De Autobuses, Avenida de América, or Aeropuerto Barajas T4 bus station and take at least 5 hours and 10 minutes to arrive at San Sebastian's Donostia bus station. Approximately 18 buses travel from Madrid to San Sebastian every day. The first Madrid to San Sebastian bus departs at 7:30 a.m. while the last departs at 12:30 a.m. All Madrid to San Sebastian buses are operated by Alsa.
Fastest way to travel from Madrid to San Sebastian
![]()
Taking a flight is the fastest way to travel from Madrid to San Sebastian. Even when travel time to and from Madrid and San Sebastian's airports is taken into consideration, taking a flight is still at least an hour faster than traveling from Madrid to Paris by bus or train. Direct flights depart from Madrid's Barajas airport and arrive at San Sebastian airport after approximately an hour of flight time. Direct flights from Madrid to San Sebastian are operated by Iberia.
Most popular way to travel from Madrid to San Sebastian

Taking the train is the most popular way to travel from Madrid to San Sebastian. While taking a flight is faster, it is also significantly more expensive than taking the train or bus. Most travelers prefer the convenience and comfort of traveling from Madrid to San Sebastian by train. There are usually 4 trains traveling from Madrid to San Sebastian per day, with the first departing Madrid at 9:00 a.m. All trains traveling from Madrid to San Sebastian are direct and operated by Renfe.
How to get from Madrid to Donostia-San Sebastian
The Best Way According to our Users
More than 1,000 travel companies trust us to sell their tickets all in one place.
FAQs: Travel from Madrid to Donostia-San Sebastian
Travel to Donostia-San Sebastian easily. Whether you want fast, cheap or something entirely different, our travel experts have collected everything you need to know so you can find the best option from Madrid to Donostia-San Sebastian.

This is compared to other travel options from Madrid to Donostia-San Sebastian:
A bus is $4 (€3) less than a train for this route with tickets for a train from Madrid to Donostia-San Sebastian costing on average $24 (€19).
A bus is $27 (€21) less than a flight for this route with tickets for a flight from Madrid to Donostia-San Sebastian costing on average $47 (€37).
Other travel options to Donostia-San Sebastian take longer:
Train takes on average 5h 0m.
Bus takes on average 5h 25m.
- Around 18 buses per day.
- Around 4 trains per day.
- Around 3 flights per day.
However, we recommend checking specific travel dates for your route between Madrid and Donostia-San Sebastian as scheduled services by train, bus, and flight can vary by season or day of the week.
- Flights mostly depart from Madrid Barajas Airport and arrive in San Sebastián Airport.
- Trains mostly depart from Madrid Chamartín and arrive in Donostia-San Sebastián.
- Buses mostly depart from Madrid, Terminal de autobuses T4 (Aeropuerto de Madrid) and arrive in Donostia-San Sebastian, Estación de Autobuses.
- Travel with Renfe ALVIA, Renfe INTERCITY, Renfe MD, Renfe Viajeros, Ouigo to go to Donostia-San Sebastian by train.
- Travel with Iberia, Air Europa, Vueling Airlines, GetJet Airlines to go to Donostia-San Sebastian by flight.
- Travel with Alsa, Alsa Supra, BlaBlaCar, FlixBus, Infobus, Conda, Autobuses Pamplona Madrid, BlaBlaCar Bus to go to Donostia-San Sebastian by bus.
- 4 direct trains per day with Renfe ALVIA, Renfe MD, Renfe Viajeros.
- 3 direct flights per day with Iberia.
- 16 direct buses per day with Alsa, Alsa Supra, BlaBlaCar, FlixBus, BlaBlaCar Bus.
Travelling from Madrid to Donostia-San Sebastian: related information
Here are some other resources that might have the information you need
