Take the bus. The road from Arequipa to Puno is about 300 km and takes roughly 5 to 7 hours, climbing from 2,300 m to a high plateau above 4,000 m before dropping slightly to Lake Titicaca at about 3,800 m. A flight is not a real alternative on this pair, since services are limited. The ride is scenic by day, and cold at the top.
The road
From Arequipa, the road climbs steadily out of the valley, passing the volcanoes Misti and Chachani on the way, and enters a high-altitude reserve of grassland where vicuñas and alpacas graze. It runs across the plateau, with the highest points above 4,000 m, then drops to Juliaca, the big commercial town of the plateau, and on to Puno on the shore of Lake Titicaca. Weather at the top can change fast: cold, wind and occasional snow or hail are possible, and fog can slow traffic.
Because the climb is quick, this is the leg where altitude sickness often hits those who came up from the coast without stopping at Arequipa.
Bus options
Several operators run daily buses between the two cities, with different comfort levels. The ride takes around 5 to 7 hours, depending on stops, weather and the road. Day buses give you the views of volcanoes and highland grassland, while night buses are cheaper in time but cold and less scenic. Bring a warm layer even in summer, and carry snacks and water. Some services call at Juliaca first, which can add time if you are going on to Puno, so ask whether your bus goes direct.
Long-distance buses explains seat classes and how to book, and strikes and road blockades matters here, since the southern highlands are where protests are most common.
Flying and alternatives
The two cities do not have much of a direct air link. The nearest airport to Puno is Juliaca, about an hour away, and travelling via Lima to get there is long and expensive. A private car with a driver is quicker than the bus and lets you stop at viewpoints, but costs much more. If you want to include the Colca Canyon, some tours drop you in Puno after the canyon, saving a return to Arequipa.
The Colca Canyon route takes you north-west from Arequipa, so combining it with Puno takes some planning. Ask the tour operator whether the transfer to Puno is included and whether it uses a regular bus or a private vehicle.
Arequipa or Puno first
Most travellers go from Arequipa to Puno as part of a loop that continues to Cusco, which means they climb gradually: Arequipa at about 2,300 m, Puno at about 3,800 m, then Cusco at about 3,400 m. Going the other way, from Puno to Arequipa, is a descent and is easy on the body.
If you only have time for one of the two, Puno or Arequipa compares them. Arequipa suits those who want a colonial city and good food at moderate altitude; Puno is the base for Lake Titicaca and its islands, a very different experience. The southern Peru loop places both on a single route.
What you see on the way
By day, the ride is among the best bus journeys in the south. The cone of Misti stays visible behind you as you leave Arequipa, and on the plateau you pass lagoons, grassland and herds of alpacas. Birdlife is common near shallow lakes. The highest point is a quiet place of wind and open sky.
Take a camera, but do not expect the bus to stop for photographs. If you want to stop and look, a tour or a private driver gives you that flexibility. Dress warmly, as the bus interior can be cold, and sit on the side of the bus that gives you the best view of the volcanoes on the way out.
Arriving in Puno
Buses arrive at the terminal in Puno, a short taxi from the lake and most hotels. After a long ride at height, take the first afternoon slowly: Puno is at about 3,800 m, and the effort of carrying bags up stairs is noticeable. Agree a taxi fare before you get in or ask your hotel to arrange a pick-up.
Puno covers the town, and Lake Titicaca explains the islands, including options for a half-day or full-day boat trip. If you plan to continue to Bolivia, crossing to Bolivia explains the border options.
Frequently asked questions
How long does the bus from Arequipa to Puno take?
Usually 5 to 7 hours, depending on the service and the weather.
Is it better to go from Arequipa to Puno or the other way?
Going from Arequipa to Puno means gaining altitude, but if you have spent time in Arequipa first it works well. Coming from Puno to Arequipa is easier on the body.
Should I travel by day or night?
By day if you can: the scenery is excellent and the road is safer to drive when visible.
Is there a direct flight between Arequipa and Puno?
No regular direct service is normally available. The usual air route goes through Lima, which makes the bus the practical choice.
Will I get altitude sickness on this route?
It is possible, particularly if you came up quickly from the coast. A few days in Arequipa first help, and the altitude sickness explains what to do if symptoms appear.
Can I stop in Juliaca?
Juliaca is a commercial town rather than a tourist stop, and most visitors pass through it. It has the airport for Lake Titicaca, so you may stop there on a flight connection.
What should I wear on the bus?
Layers. The plateau is cold even in summer, and bus heating varies. A warm jacket, hat and gloves are useful for the high stretch and for arrival in Puno.