Bus routes from Madrid to Porto and from Porto to Madridfrom $10.99
Comfort on board
On this page
Bus stations and stops in Madrid
Madrid (South Bus Station)
Bus stations and stops in Porto
Porto (TIC - Campanhã)
TIC - Terminal Intermodal Campanhã
Vila Nova de Gaia (Porto)
Vila Nova de Gaia
Frequently asked questions
How long does it take from Madrid to Porto by bus?
What is the distance between Madrid and Porto?
How much is the bus ticket between Madrid and Porto?
How many rides a day are there from Madrid to Porto?
How can I pay for the bus from Madrid to Porto?
Where can I see if my bus from Madrid to Porto is on time?
When is the cheapest time to book a bus ticket from Madrid to Porto?
Find the cheapest buses from Madrid to Porto
Getting from Madrid to Porto is cheap and easy when you travel with FlixBus. The two cities are 611 km apart and traveling between the two takes as little as 7 hours 10 minutes.
FlixBus tickets are always good value, but you can save even more money by booking online in advance. Book on the website or with our FlixBus App in minutes, then simply use your phone as your ticket to board the bus.
Bus tickets between Madridand Porto cost $53.99 on average, but you can get tickets for as low as $19.99 if you book in advance and/or outside of busy travel times, like weekends and holidays. For a quick, easy, and environmentally-conscious choice, travel with FlixBus.
We have a large network, so you can trust us to take you from your desired departure city to your destination in comfort and style - all for a great value.
Traveling from Madrid to Porto
It’s easy to get from Madrid to Porto with FlixBus, with 3 direct buses per day. The first bus is at 8:55 am and the last bus leaves at 11:55 pm, giving you options to suit every schedule.
You can expect a minimum of 5.0 stops on your journey and it can take a minimum time of 7 hours 10 minutes.
Bus travel is the most environmentally friendly way to travel long distances and we’re working to make it even greener with high environmental standards across our fleet of buses, the use of alternative drive and fuel technologies, and the option for all passengers to offset their carbon emissions at the point of buying a ticket.
The average cost of bus travel between Madrid and Porto is $53.99, which makes bus travel far cheaper than any other method.
Taking the bus from Madrid
Traveling from Madrid and not familiar with it? Here’s everything you need to know.
Madrid is a transport hub with 2 bus stations; the 30 buses departing every day take travelers to cities across the country
Arriving in Porto
Traveling to Porto for the first time? Here’s what you need to know:
Porto is very well connected to other destinations on the FlixBus network. The city is connected to 68 other destinations that you can easily reach by bus. You can find 3 FlixBus stops in the city.
What to expect onboard the FlixBus bus from Madrid to Porto
Getting from Madrid to Porto aboard a FlixBus bus means traveling in comfort and style, with all the services you need to keep you occupied. Most of our buses include free Wi-Fi onboard, an entertainment system, toilets and power outlets.
You can bring one carry-on and one check-in piece of luggage per passenger, so even if you’re taking a long trip, you don’t need to worry about traveling light.
All ticket holders are guaranteed a seat on our buses but if you want to reserve a seat, you can do so at the time of booking. Choose from a classic seat, table seat, panorama seat or extra seat.
Just book online or on our FlixBus App when purchasing your ticket using any of our available payment methods.
Discover more popular bus connections
- Lisbon - Madrid
- Madrid - Lisbon
- Porto - Madrid
- Paris - Madrid
- Madrid - Porto
- Madrid - Paris
- Toulouse - Madrid
- Coimbra - Madrid
- Madrid - Toulouse
- Madrid - Coimbra
- Bordeaux - Madrid
- Madrid - Lyon
- Marseille - Madrid
- Madrid - Bordeaux
- Lyon - Madrid
- Montpellier - Madrid
- Madrid - Berlin
- Madrid - Nîmes
- Madrid - Montpellier
- Nîmes - Madrid
- Lisbon - Porto
- Porto - Lisbon
- Coimbra - Porto
- Porto - Vigo
- Porto - Coimbra
- Vigo - Porto
- Porto - Braga
- Porto - Madrid
- Braga - Porto
- Bragança - Porto
- Vila Real - Porto
- Porto - Bragança
- Porto - Guimarães
- Madrid - Porto
- Porto - Vila Real
- Porto - Aveiro
- Aveiro - Porto
- Porto - Leiria
- Porto - Cascais
- Cascais - Porto
Onboard services are subject to availability