- Must visit
Pinacoteca di Brera
One of Italy’s top art museums, featuring masterpieces by Mantegna, Bellini, Raphael, Caravaggio, and Piero della Francesca.
Cheapest price
lei781
Average price
lei1281
Fastest journey
1 d 5 h 5 m
Average duration
1 d 8 h 5 m
Buses per day
20
Distance
1514 km
The best way to find a cheap bus ticket from Porto to Milan is to book your journey as far in advance as possible and to avoid traveling at rush hour.
The average ticket from Porto to Milan will cost around lei1281 if you buy it on the day, but the cheapest tickets can be found for only lei781.
It's difficult to get from Porto to Milan without transferring at least once.
54152 · 51047
FlixBus · FlixBus · FlixBus
3168 · 94561
Normal+
3160 · 57201
Normal+
3160 · 57201
3168 · 94561
54152 · 51047
FlixBus · FlixBus · FlixBus
FlixBus · FlixBus
FlixBus · FlixBusOmio recommends booking the flight as it is the most popular option from Porto to Milan among Omio's users. If you are prioritising price take the bus with prices starting from lei388. For those with little time consider booking a flight which can get you there in 4h 52m. In case you are seeking to minimise your carbon footprint the bus is your best bet as it emits only 1.5 - 3.8kg. The ticket price range depends on the travel mode: a bus costs an average of lei388, and a flight costs an average of lei273.
Distance: 940 miles (1514 km)
| Bus | Most popular Flight |
|---|---|
lei720 Average price Cheapest | lei799 Average price |
25h 25m Average total duration 24h 55m Onboard + 30m Additional time* | 7h 52m Average total duration Fastest 4h 52m Onboard + 3h 0m Additional time* |
1.5 - 3.8kg CO2 emissions Lowest | 4.5 - 9.1kg CO2 emissions |
![]() Most popular bus company | ![]() Most popular airline |
Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
This is compared to other travel options from Porto to Milan:
A bus is lei79 less than a flight for this route with tickets for a flight from Porto to Milan costing on average lei799.
Other travel options to Milan take longer:
Bus takes on average 24h 55m.
| Operator | Departure Time | Arrival Time | Duration | Departure days | Cheapest price |
|---|---|---|---|---|---|
Operator BlaBlaCar Bus | Departure Time 12:50AM | Arrival Time 09:40AM | Duration 31h50 | Departure days Wed, Fri, Sun | Cheapest price lei781 |
Operator FlixBus | Departure Time 05:00AM | Arrival Time 06:10PM | Duration 36h10 | Departure days Mon, Tue, Wed, Fri, Sat, Sun | Cheapest price lei745 |
Operator FlixBus | Departure Time 08:50AM | Arrival Time 11:00PM | Duration 37h10 | Departure days Mon, Tue, Wed, Fri, Sat | Cheapest price lei896 |
Operator FlixBus | Departure Time 09:00AM | Arrival Time 07:30PM | Duration 33h30 | Departure days Mon, Tue, Wed, Fri, Sat | Cheapest price lei882 |
Operator Alsa | Departure Time 09:00AM | Arrival Time 09:25PM | Duration 35h25 | Departure days Mon, Tue, Wed, Fri, Sat, Sun | Cheapest price lei776 |
Operator FlixBus | Departure Time 09:30AM | Arrival Time 07:05PM | Duration 32h35 | Departure days Mon, Tue, Wed, Sat | Cheapest price lei759 |
Operator Alsa | Departure Time 09:45AM | Arrival Time 09:25PM | Duration 34h40 | Departure days Mon, Tue, Wed, Fri, Sat, Sun | Cheapest price lei776 |
Operator Alsa | Departure Time 12:00PM | Arrival Time 12:10AM | Duration 35h10 | Departure days Mon, Tue, Fri, Sat, Sun | Cheapest price lei712 |
Operator Alsa | Departure Time 12:30PM | Arrival Time 12:10AM | Duration 34h40 | Departure days Mon, Tue, Fri, Sat, Sun | Cheapest price lei712 |
Operator Alsa | Departure Time 12:45PM | Arrival Time 12:10AM | Duration 34h25 | Departure days Mon, Tue, Fri, Sat, Sun | Cheapest price lei712 |
Operator FlixBus | Departure Time 09:00PM | Arrival Time 07:10AM | Duration 33h10 | Departure days Everyday | Cheapest price lei826 |
Operator FlixBus | Departure Time 10:10PM | Arrival Time 03:30PM | Duration 40h20 | Departure days Everyday | Cheapest price lei1370 |
Operator BlaBlaCar Bus | Departure Time 11:55PM | Arrival Time 06:00AM | Duration 29h05 | Departure days Tue, Wed, Fri, Sat | Cheapest price lei977 |
The table below shows live departures for Porto to Milan buses for tomorrow, Friday, August 14. You can also manually refresh the results below to see updated bus journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
54152 · 51047 | 12:50 AM Porto, Terminal Intermodal de Campanhã | 31h50 | 9:40 AM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus · FlixBus | 5:00 AM Porto, Terminal Intermodal de Campanhã | 36h10 | 6:10 PM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus · FlixBus · FlixBus | 8:50 AM Porto, Terminal Intermodal de Campanhã | 37h10 | 11:00 PM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 2 transfers | |
FlixBus · FlixBus | 8:50 AM Porto, Terminal Intermodal de Campanhã | 33h15 | 7:05 PM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus · FlixBus · FlixBus | 9:00 AM Porto, Terminal Intermodal de Campanhã | 33h30 | 7:30 PM Milano, Autostazione Lampugnano | 2 transfers | |
FlixBus · FlixBus · FlixBus | 9:00 AM Porto, Terminal Intermodal de Campanhã | 33h05 | 7:05 PM Milano, Autostazione Lampugnano | 2 transfers | |
Normal+ 3160 · 57201 | 9:00 AM Maia, Porto (Aeroporto Sa Carneiro) | 43h45 | 5:45 AM Milano, Autostazione Lampugnano | 2 transfers | |
Normal+ 3187 · 94765 | 9:00 AM Maia, Porto (Aeroporto Sa Carneiro) | 35h25 | 9:25 PM Milano, Autostazione Lampugnano | 2 transfers | |
Normal+ 3187 · 94765 | 9:00 AM Maia, Porto (Aeroporto Sa Carneiro) | 35h25 | 9:25 PM Milano, Autostazione Lampugnano | 2 transfers | |
Normal+ 3160 · 57201 | 9:45 AM Porto, Terminal Intermodal de Campanhã | 43h00 | 5:45 AM Milano, Autostazione Lampugnano | 2 transfers | |
Normal+ 3187 · 94765 | 9:45 AM Porto, Terminal Intermodal de Campanhã | 34h40 | 9:25 PM Milano, Autostazione Lampugnano | 2 transfers | |
Normal+ 3187 · 94765 | 9:45 AM Porto, Terminal Intermodal de Campanhã | 34h40 | 9:25 PM Milano, Autostazione Lampugnano | 2 transfers | |
Normal+ 3160 · 57201 | 12:00 PM Maia, Porto (Aeroporto Sa Carneiro) | 40h45 | 5:45 AM Milano, Autostazione Lampugnano | 2 transfers | |
Normal+ 3160 · 57201 | 12:30 PM Porto, Polo Universitario (Bus Terminal) | 40h15 | 5:45 AM Milano, Autostazione Lampugnano | 2 transfers | |
Normal+ 3160 · 57201 | 12:45 PM Porto, Terminal Intermodal de Campanhã | 40h00 | 5:45 AM Milano, Autostazione Lampugnano | 2 transfers | |
FlixBus · FlixBus · FlixBus | 9:00 PM Porto, Terminal Intermodal de Campanhã | 37h40 | 11:40 AM Milano, San Donato - Settore B (Viale Giuseppe Impastato) | 2 transfers | |
FlixBus · FlixBus | 9:00 PM Porto, Terminal Intermodal de Campanhã | 33h10 | 7:10 AM Milano, Autostazione Lampugnano | 1 transfer | |
FlixBus · FlixBus · FlixBus | 9:00 PM Porto, Terminal Intermodal de Campanhã | 37h55 | 11:55 AM Milano, Milan Linate Airport | 2 transfers | |
FlixBus · FlixBus · FlixBus · FlixBus | 10:10 PM Porto, Terminal Intermodal de Campanhã | 40h20 | 3:30 PM Milano, Milan Linate Airport | 3 transfers | |
This is the last bus of the day. | |||||
Find all the dates and times for this journey
Compare 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.
Buses from Porto to Milan run on average 8 times per day, taking around 24h 55m. Cheap bus tickets for this journey start at lei388 but you can travel from only lei273 by flight.
The earliest bus runs at 00:05, the last at 23:55. The fastest bus covers the 940 miles (1514 km) distance in 29h 5m.
Distance 940 miles (1514 km) |
Average bus duration 24h 55m |
Cheapest ticket price lei388 |
Buses per day 8 |
Fastest bus 29h 5m |
First bus 12:05 AM |
Last bus 11:55 PM |
Cheapest Month Jul |
Cheapest Day Wed |
High Season Oct - Dec |
Low Season Jan - Mar |
Busiest Day Tue |
Least Busy Day Sun |
Best time to book 35 days |
Discover the best of Milan — top attractions, local food, transport tips, budget advice, and currency essentials. Plan your perfect Milan trip today.
One of Italy’s top art museums, featuring masterpieces by Mantegna, Bellini, Raphael, Caravaggio, and Piero della Francesca.
This contemporary art museum near Porta Romana presents rotating exhibitions in a striking former industrial distillery complex.
Italy’s leading science museum is set in a former monastery and features Leonardo galleries, trains, aircraft, and a submarine.
Milan’s central square frames the cathedral and major civic buildings, making it the city’s essential meeting point and photo stop.
This artistic district offers charming lanes, Brera atmosphere, boutiques, and easy access to galleries and evening strolls.
A large landscaped park behind the castle, perfect for walks, skyline views, and reaching landmarks like the Arch of Peace.
Saffron risotto cooked with butter, stock and cheese. It is Milan's signature dish, linked to the city's love of rich northern Italian rice cookery.
Breaded veal cutlet fried in butter until golden. A classic Milanese main, prized for its simple preparation and long-standing local tradition.
Slow-braised veal shanks with vegetables, wine and broth, often finished with gremolata. A hearty Lombard specialty commonly paired with risotto.
Three-Michelin-star fine dining by Enrico Bartolini in MUDEC. Expect refined Italian tasting menus in a polished contemporary setting.
Historic Milanese restaurant near the Duomo, famous for risotto and cotoletta. Traditional, elegant rooms and a strong local culinary identity.
Long-running local favorite for classic Milanese cuisine, especially risotto and ossobuco. Warm, old-school atmosphere in the Brera area.
Moderate for Western Europe. Hotels and central dining can be pricey, but transit is affordable and budget meals, aperitivo deals, and local cafes help keep daily costs reasonable.
Tipping is modest. Service may be included. Round up or leave €1-2 at cafes, 5-10% for good restaurant service, and round up taxi fares.
Official public transport app
Orio al Serio, Milan Bergamo Airport (Bus station) -> Milano Centrale, Milan
Find answers to the most common questions about traveling from Porto to Milan by bus. From journey times and ticket prices to direct connections, first and last departures, and even whether the route is scenic, our FAQs cover everything you need to plan your trip. Whether you’re looking for the fastest bus, the cheapest option, or tips for making the most of your visit at Milan, this guide helps you travel smarter and with confidence.

Most Porto to Milan buses use the Porto, Terminal Intermodal de Campanhã to Milano, Autostazione Lampugnano station pair, with some services arriving at Milano, Aeroporto di Milano Linate. Use this guide to compare Porto and Milan bus stations on this route, check city-centre transport, alongside checking practicalities like bus station facilities and services.
Porto, Terminal Intermodal de Campanhã is 2 km from Porto city centre. Public transport options include:
Porto, Terminal Intermodal de Campanhã has practical services for this route, including Wifi, Parking, Dining, ATM, Taxis, Accessibility, WC, and Ticket Office.
Food options include: Cafetaria Terminal (in the station), Restaurante Campanhã (0.5 km), Tasquinha do Caco (0.7 km).
Free Wi-Fi. ATMs are located near the main entrance.
Ticket office support is available at Porto, Terminal Intermodal de Campanhã.
Available at Porto, Terminal Intermodal de Campanhã: Parking, Taxis, WC.
Accessibility facilities are available at Porto, Terminal Intermodal de Campanhã: Elevators.
Milano, Autostazione Lampugnano is 5 km from Milan city centre. Public transport options include:
Milano, Autostazione Lampugnano has practical services for this route, including Wifi, Parking, Dining, ATM, Taxis, Accessibility, WC, and Ticket Office.
Food options include: Cafeteria Lampugnano (in the station), Trattoria Milano (0.5 km), Pizza Express (0.7 km).
Free Wi-Fi. ATMs are located near the main entrance.
Ticket office support is available at Milano, Autostazione Lampugnano.
Available at Milano, Autostazione Lampugnano: Parking, Taxis, WC.
Accessibility facilities are available at Milano, Autostazione Lampugnano: Elevators, ramps.
Milano, San Donato - Settore B (Viale Giuseppe Impastato) is 6 km from Milan city centre. Public transport options include:
Milano, San Donato - Settore B (Viale Giuseppe Impastato) has practical services for this route, including Wifi, Parking, Dining, ATM, Taxis, Accessibility, WC, and Ticket Office.
Food options include: Cafeteria Italiana (in the station), Fast Food Express (in the station), Trattoria Milano (0.5 km).
Free Wi-Fi. ATMs are located near the main entrance for cash withdrawals.
Ticket office support is available at Milano, San Donato - Settore B (Viale Giuseppe Impastato).
Available at Milano, San Donato - Settore B (Viale Giuseppe Impastato): Parking, Taxis, WC.
Accessibility facilities are available at Milano, San Donato - Settore B (Viale Giuseppe Impastato): Elevators, ramps.
Here are some other resources that might have the information you need