Fastest journey3hr 58m
The train from Geneva to Milan takes you through the Alps. Comfortable EuroCity services leave Geneva four times each day for Milan, first skirting the north side of Lake Geneva and then diving through the Simplon Tunnel to reach Italy. Once in Italy, they cut through a corner of Piedmont with marvellous views of Lake Maggiore on the left before dropping gently down to the plains of Lombardy and Milan. You'll see decent views of distant Alpine scenery, but there are no serious close encounters with the hills.
The direct trains from Geneva to Milan take just under 4 hours for the journey. If the timings of those direct trains do not suit your schedule, there are three additional options each day, requiring a single change of train at Brig. With this one-change option, the total journey time is extended by about 40 minutes and you may find that the fares are not as cheap.
Bookings for the direct trains from Geneva to Milan normally open four months prior to travel. This is a route where very cheap tickets are available for early bookers, but they do sell out quickly.
Geneva to Milan
The direct trains from Geneva to Milan leave from the Gare de Cornavin in the very middle of Geneva. In Milan they arrive at Centrale which is perfect for onward connections, with high-speed trains to major cities across Italy. On the 370-kilometre journey from Geneva to Milan, the EuroCity trains make six intermediate stops – four in Switzerland and two in Italy.
To see the best scenery, sit on the right hand side of the train on the first part of the journey out of Geneva, switching to the left side while in the Simplon Tunnel. So Switzerland to starboard, Italy to port.
One train each day on this route continues beyond Milan to Verona, Vicenza, Padua and Venice, thus giving a useful direct link from Geneva to four important cities in the Veneto region.
Other journeys to Milan View all journeys to Milan
- From St-Raphael-Valescure from £47.00
- From Antibes from £28.90
- From Trieste Centrale from £18.40
- From Nice from £13.80
- From Bellinzona from £24.00
- From Lausanne from £55.50