How to get to Lake Como and the Italian Lakes region by train

The Italian Lakes splays out with watery fingers north of Milan in the mountains bordering Switzerland. It is one of Europe’s most beautiful and fabled areas, with dramatic peaks framing deep blue lakes whose shores are speckled with historic villages. We explain how to get to Lake Como, Lake Garda, Lake Lugano and Lake Maggiore, whether you’re coming from the airport or travelling between lakes.

Which Italian lake should I visit?

Just like siblings, the Italian lakes are related but have distinct personalities. Beautiful Maggiore is the most famous of the lakes; it offers a distant backdrop of gorgeous Alps, yet has weather more in tune with balmy Italy. Como has the postcard-perfect village of Bellagio at the apex of its inverted Y shape and is known for the ring of equally cute villages around its shores. Lake Lugano is for those who want to enjoy both Italy and Switzerland, as its waters span both countries. Lake Garda is the largest Italian lake and spreads out into the sun-drenched Italian plains of Lombardy and Veneto. Ferries connect towns and villages across the Italian lakes.

What’s the best way to get to Lake Como and the Italian Lakes?

Roads are curvy, slow and often traffic-clogged, and the bus network is patchy. But trains go to all the lake towns on a regular basis and they allow easy transfers to the lakes’ ferry systems. Plus, they offer often-beautiful rides.

All four lakes are easily reached by frequent trains from Milan in Italy and the main cities in Switzerland, including Lugano and Zurich. You can also train from one lake to another. See below for specific lake information.

What if I’m coming to the Italian Lakes from the airport?

Milan-Malpensa International is the closest major airport; train connections from here to the Lake District are usually via Milan’s main train station, Centrale (the Malpensa Express to Centrale from takes around an hour).
Milan-Malpensa Airport to Milano Centrale Railway Station

Geneva and Zurich airports also have train connections to the lakes, but since they’re much further connections can require some effort. Trains from Zurich to Lugano and Como are the easiest. Fares on these routes will depend on how far in advance booking is made.
Zurich Airport Railway Station to Zurich HB Railway Station
Zurich HB Railway Station to Lugano Railway Station
Zurich HB Railway Station to Como San Giovanni Railway Station

Who runs the trains around the Italian Lakes?

The two main operators are the Italian railway, Trenitalia, and the Swiss railway, SBB. These huge systems provide the long-distance trains into the region and link up with other European railways further afield. The dense network of local trains serving the lakes is run by the Italian regional railway Trenord.

When do the trains run?

It’s easy to check Trenitalia and SBB schedules online. You can count on at least one train an hour in any direction on their major lines serving Milan. Trenord’s timetables are more problematic as the operator is notoriously lax about putting them online – although you can always check an up-to-date timetable at stations in the region. However, all their lines have trains at least hourly, and distances and travel times are fairly short.

ferry around Italian Lakes
Ferries connect towns and villages across the Italian lakes. (Credit: Pixabay)

How much do train tickets cost?

Fares on the long-distance express trains to Milan and Lugano from further afield in Switzerland, Italy or beyond are sold like airline tickets – the sooner you buy the more you save. Tickets go on sale online 90 days ahead and can be bought on the Trenitalia, SBB or other online train-ticket websites.

Fares on the various local Trenord trains in the region are low – about €5 to €15 – and don’t need to be booked in advance. You buy them from machines at any train station.

How do I get to the lakes?

How to get to Lake Maggiore:

If you’re coming from the south, hourly express trains from Milan stop at the lake’s main ferry-port town of Stresa (70 minutes). From the north, there are express trains from Swiss cities such as Geneva (3 hours) and Basel (3 hours).
Milano Centrale Railway Station to Stresa Railway Station
Genève-Cornavin Railway Station to Stresa Railway Station
Basel SBB Railway Station to Stresa Railway Station

Book a hotel in Lake Maggiore

A local line operated by Trenord serves towns such as Luino on the east side of the lake. The route runs from Milan’s Malpensa Airport to Bellinzona in Switzerland interchanging with the line along the west side of the lake at Gallarate. Additionally, local trains between Milan and Domodossola on the Swiss border serve towns on the west side of the lake, including Arona, Beligrate and Stresa.
Milan-Malpensa Airport to Luino Railway Station
Milan Centrale Railway Station to Arona Railway Station

How to get to Lake Como:

Frequent local trains run between Milan and Bellinzona and stop at Como’s main train station, Como San Giovanni. If you’re coming from the north, say Zurich, you can get an express train to Lugano and change to the local train to Como. Additionally, direct express trains to Como leave at several times a day from Milan Centrale (40 minutes) and Zurich (3 hours).
Zurich HB Railway Station to Como San Giovanni Railway Station via Lugano Railway Station
Milan Centrale Railway Station to Como San Giovanni Railway Station

Book a hotel in Lake Como

On the lake’s east side, Trenord has an hourly service between Milan and Tirano on the Swiss border. Disembark at Varenna for the ferries to all points on Lake Como, including the popular town of Bellagio.
Milan Centrale Railway Station to Varenna-Esino-Perledo Railway Station
Veranna to Bellagio by ferry

Alternate route: Lake Como to Switzerland

On the east side of Lake Como, the local train line that serves Varenna from Milan continues north and terminates in the border town of Tirano. Here you can transfer to one of Switzerland’s most famous and spectacular trains through the Alps, the Bernina Express, which runs north and serves destinations such as St Moritz and Davos. From the terminus in Chur, you can get trains to Zurich and other main Swiss cities. This train is so scenic that the train cars have windows all around, including the roof.

Milan Centrale Railway Station to Tirano Railway Station
Bernina Express

Lake Maggiore Italy Lake District
Lake Maggiore is Italy’s second-largest lake. (Credit: Severin Jann via Wikimedia Commons)

How to get to Lake Lugano:

The subtropical Swiss city of Lugano is the gateway to its namesake lake. It has great train connections: both local and express trains stop here on the busy Zurich-Milan line (approximately 2 hours 30 minutes from Zurich; 1 hour 30 minutes from Milan). Additionally, local trains between Bellinzona and Milan stop in Lugano.
Zurich HB Railway Station to Lugano Railway Station
Milan Centrale Railway Station to Lugano Railway Station

Book a hotel in Lake Lugano

How to get to Lake Garda:

The lake is linked to rail at the two southern towns of Desenzano del Garda and Peschiera del Garda. Both are served by numerous local and express trains on the busy Milan to Venice route (approximately 90 minutes from Milan; 1 hour 45 minutes from Venice).

Book a hotel in Lake Garda

How do I travel between the lakes?

You can get from one lake to another, usually with a change or two of trains.

• Lake Maggiore: In most cases you’ll take a train to Milan and change trains for the other lakes. However, you can also take a ferry north to Locarno and take a train connection to Lugano (one hour), changing in either Giubiasco or Bellinzona.
Lake Maggiore to Lake Lugano by ferry and train

• Lake Como: It’s a short train ride to Lugano (direct trains take 30 minutes); for the other lakes you’ll need to transfer in Milan.
Lake Como to Lake Lugano by train

• Lake Lugano: Direct trains to Como can take just 30 minutes; for the other lakes you’ll usually need to transfer in Milan. Although you can also take a train connection to Locarno (one hour, changing in either Giubiasco or Bellinzona) where you can get Lake Maggiore ferries.
Lake Lugano to Lake Como by train
Lake Lugano to Lake Maggiore by train

• Lake Garda: you’ll need to change trains in Milan to visit the other lakes.
Lake Garda to Milan Centrale Railway Station

What’s the most scenic journey around the Italian Lakes?

The Lago Maggiore Express, combining train and boat travel, is the ultimate day trip as it curves through deep river gorges and soaring peaks while wandering past painfully cute little Alpine villages. From Arona, Beligrate or Stresa, take a local Italian train to the Alpine town of Domodossola where you transfer to one of the region’s most beautiful train rides: the aptly named Centovalli (Hundred Valleys) train to Locarno in Switzerland. From here you can get a ferry back to the port of your choice on Lake Maggiore. Purchase a combined fare for this journey from any ferry ticket office on the lake (€34 for adults / €17 for children).

How do I get around the lake once I’m there?

Each lake is served by a dense network of ferries; scenic regular ferries serve virtually every lakeside town and village, while express hydrofoils link the main ones. Towns with train stations also always have ferry ports.

Individual ferry tickets on the lakes cost €3 to €15, and can be purchased from ticket booths at the ports. Day passes are good deals and sell for about €7 to €35. Up-to-date fare and timetable information for Lakes Maggiore, Como and Garda can be found here; and here for Lake Lugano.

This article was originally published on 9 June 2017

Rome2rio, based in Melbourne, Australia, is organising the world’s transport information. We offer a multi-modal, door-to-door travel search engine that returns itineraries for air, train, coach, ferry, mass transit and driving options to and from any location. Discover the possibilities at