There are two main means of approach from Lima to Puno, the gateway city to the mythical Lake Titicaca. One goes direct. But it is important to bear in mind that you may quite likely want to come here as part of a wider trip around Peru, and that if you are doing this the most common means of approach is actually to come via Cusco, the jumping-off point for exploring the Sacred Valley, first.
Making the 803 miles (1,292 km) via Cusco also gives you the option of factoring in one of Peru's remaining great train journeys for the final leg of the journey from Cusco to Puno.
Travel times below do not include overnight stays: for some options staying overnight in Cusco is either advisory or essential. Take a taxi to transfer between transport hubs in Cusco.
By Plane to Juliaca and Private Transfer
Duration: 3 hours
This is certainly the quickest means of travel between Lima and Puno. First off, travelers need to take one of four daily flights from Lima to Juliaca, the major city in the Titicaca region and the closest airport to Puno. The carriers are currently LATAM and Viva Air. The only one of these flights currently operating afternoon is LATAM's early evening departure. Flight time is around 1.75 hours.
Traveling this way, from Lima at sea level to Inca Manco Cápac International Airport in Juliaca, which is at a high elevation, be mindful of the possibility of altitude sickness.
At the airport, taxis and colectivos transfer you to Puno direct without going into central Juliaca: travel time is one hour.
Duration: 19-21 hours
Buses to Puno from Lima normally take the route via Arequipa, which runs most of the way on one of Peru's best roads, the Hwy Pan-Americana Sur. The length of this journey (half-way across Peru!) means travel time can vary: it can be as quick as 19 hours or as long as 21 hours depending on the road conditions and the stops the driver makes.
This is a fairly grueling trip because of the number of hours it takes, but has the advantages of being both the cheapest means of travel between the two cities and also the means of travel with the most flexibility, because buses depart from Lima to Puno around the clock.
The main bus station in Puno, Terminal Terrestre, is one mile (1.5km) southeast of central Puno.
By Bus via Cusco
Duration: 30-37 hours
You would only really want to take this option if you were going to stop off in Cusco en route, which is what many travelers do end up doing. Buses from Lima to Cusco can take as little as 21 hours but more commonly take 24-30. It is then about six to seven hours from Cusco to Puno.
Because of the length of this journey (traveling 30 hours by bus in Peru leaves you tired!) passengers would almost certainly need to break the journey and stay overnight in Cusco. Time spent in Cusco is not included in the journey time given above.
Coming this way, one of the best bus options for the second leg of the journey from Cusco to Puno is the Inka Express service (taking slightly longer than regular buses), which includes lunch and a tour guide explaining points of interest along the way. It helps make the journey pass more pleasurably. Hwy 3S runs southeast all the way from Cusco via Juliaca to Puno.
By Bus to Cusco and Train
Duration: 34 hours - 2.5 days
This is an interesting option because of being able to factor in one of Peru's last great train journeys. Buses from Lima to Cusco commonly take 24-30 hours. Because of the length of this journey (traveling 30 hours by bus in Peru leaves you feeling tired!) and the train departure in the morning the next day, passengers need to stay overnight in Cusco.
One of the best train journeys in Peru—and all of South America—then runs from Cusco to Puno via Juliaca. The train run by Peru Rail departs Cusco's Huanchac train station: The Titicaca train departs on Wednesday, Friday, and Sunday mornings and makes the journey in ten hours; the Andean Explorer train (more luxurious) departs once weekly on Tuesdays but takes until the following day to arrive.
Either way, the journey over the Andes is stark and stunning, but prices are high. In Puno, the train station is quite close to the Plaza de Armas in the center and therefore to accommodation options.
By Plane to Cusco and Bus
Duration: 7.5-9 hours
This option is as per the following option for the first leg of the journey by plane from Lima to Cusco, and as per option three listed here for travel by bus from Cusco to Puno. It saves traveling the entire route by bus, which would be a very long journey, and because of the stop at Cusco is quite a popular option. However, the journey time above is not including time spent in Cusco along the way.
By Plane to Cusco and Train
Duration: 11.5 hours - 2 days
Direct flying time from Lima to Cusco's Alejandro Velasco Astete International Airport is 80-90 minutes. Most of Peru's domestic airlines and several international carriers ply this route, which is the most popular journey in the country. LATAM offers the greatest choice of flights, while other airlines flying include Avianca, Sky Airline Perú, and Peruvian. Direct flights are about hourly between 5 am and 7 pm.
The second leg of the journey is by train with Peru Rail, departing from Cusco's Huanchac train station bound for Puno, as per option four listed here. The Andean Explorer Train takes over a day to make its more leisurely and luxury journey from Cusco to Puno. In Puno, the train station is quite close to the Plaza de Armas in the center and to accommodation options.
The train journey makes this travel option a very atmospheric, but also the most expensive way to travel between Lima and Puno.