Lake Maggiore (Lago Maggiore), is the second-largest lake in Italy and is located northwest of Milan. Part of the lake is in Switzerland, but the majority is shared by the Italian regions of Piedmont and Lombardy. The western shore of the lake, with the towns of Arona, Stresa, and Verbania, is the more developed and heavily touristed, while the eastern side is regarded as the best stepping off point for day- and multi-day hikes in the region.
Traveling from within Italy, almost every path to the lake leads through Milan—read our articles on how to get there from Florence and Venice. And consider this 15-Day Discover Milan and Italy's Lakes Region tour, which includes three nights in Milan and two nights in Stresa.
From Milan by Car
If you're starting out in Milan and have a rental car, head out of the city on the A8/Autostrada dei Laghi, also signposted in places as the E62 and E35. After about 27 miles (43 km), at Gallarate, the highway divides – you'll want to head in the direction marked Genoa/Gravellona T., which is the E62/A8/A26.
Continue on this highway for about 9 miles (15 km) until the Sesto Calende/Vergiate exit. Follow signs for Sesto Calende and pass through the town on the SS33. From a traffic circle near the outside of town, you'll have the option to continue on the SS33 for Arona, Stresa, and Novara on the western side of the lake, or exit onto the SP69 for Angera, Laveno and other points on the eastern side of the lake.
The SP33 runs along the western lakeshore until Feriolo/Baveno. At that point, if you want to continue to hug the coast, you'll need to take the SS33racc connector road, which crosses the Toce River and picks up the SS34, which hugs the lakefront all the way to the border with Switzerland, where it becomes road 13.
If you're sticking to the eastern side of the lake, the SP69 runs up to Luino, where it merges with the SS394, which runs all the way to the Swiss border.
No matter which side of the lake you choose to explore, if your budget allows, a private driver makes a great option for your travels. The scenery along Lake Maggiore is stunning, and it's a pleasure to sit back and enjoy it while someone else worries about the driving.
From Milan by Train
For arriving to Lago Maggiore by train, Trenitalia offers direct trains from either Milano Centrale or Milano Porta Garibaldi stations, with stops at Arona, Stresa, and Verbania-Pallanza, all on the western side of the lake. Note that to reach points north of Verbania on the lake's western shore, you have to travel to Laveno on the eastern shore (see below), then take a ferry across the lake to Intra.
To reach the lake's eastern shore by train, Trenitalia currently offers three direct trains per day from Porta Garibaldi station, with stops at Laveno, Calde and Porto Valtravaglia on the lakefront. From Luino, it's possible to transfer to regional trains that continue north, stopping at towns along the eastern lakeshore and continuing on into Switzerland.
To learn more about what to see and do in Italy's Lake Region, check out this article on exploring the Italian Lakes Region.