• Our partners include:

  • Booking.com
  • Skyscanner
  • Airbnb
  • Expedia
  • Uber
  • Rentalcars.com

There are 5 ways to get from Puno to Machupicchu Guest House, Machu Picchu by bus, train or plane

Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2rio's travel planner.

Recommended option

Bus, train  •  12 h 38 min

  1. Take the bus from Puno to Cusco Copacabana
  2. Take the train from Cusco to Machu Picchu 360 / ...

Cheapest option

Bus to Juliaca, fly, bus, train  •  6 h 46 min

  1. Take the bus from Puno to Juliaca
  2. Fly from Juliaca (JUL) to Cuzco (CUZ) JUL - CUZ
  3. Take the bus from Cusco to Ollantaytambo
  4. Take the train from Ollantaytambo to Machu Picchu

$172 - $292

3 alternative options

Train, bus  •  14 h 12 min

  1. Take the train from Puno to Cusco - Wanchaq
  2. Take the bus from Cusco to Ollantaytambo
  3. Take the train from Ollantaytambo to Machu Picchu 360

$282 - $3,100

Train  •  15 h 11 min

  1. Take the train from Puno to Cusco - Wanchaq Titicaca train
  2. Take the train from Cusco to Machu Picchu 360 / ...

Bus to Arequipa, fly, bus, train  •  12 h 3 min

  1. Take the bus from Puno to Arequipa
  2. Fly from Arequipa (AQP) to Cuzco (CUZ) AQP - CUZ
  3. Take the bus from Cusco to Ollantaytambo
  4. Take the train from Ollantaytambo to Machu Picchu

$172 - $354

Questions & Answers

The cheapest way to get from Puno to Machupicchu Guest House, Machu Picchu is to bus and fly and train which costs $170 - $300 and takes 6 h 46 min.

More details

The quickest way to get from Puno to Machupicchu Guest House, Machu Picchu is to bus and fly and train which costs $170 - $300 and takes 6 h 46 min.

More details

No, there is no direct train from Puno to Machupicchu Guest House, Machu Picchu. However, there are services departing from Puno and arriving at Machu Picchu via Cusco. The journey, including transfers, takes approximately 15 h 11 min.

More details

The distance between Puno and Machupicchu Guest House, Machu Picchu is 402 km.

The best way to get from Puno to Machupicchu Guest House, Machu Picchu without a car is to bus and train which takes 12 h 38 min and costs .

More details

It takes approximately 12 h 38 min to get from Puno to Machupicchu Guest House, Machu Picchu, including transfers.

More details

Puno to Machupicchu Guest House, Machu Picchu train services, operated by PeruRail, depart from Puno station.

More details

The quickest flight from Juliaca Airport to Cuzco Airport is the direct flight which takes 50 min.

Search flights

Puno to Machupicchu Guest House, Machu Picchu train services, operated by Inca Rail, arrive at Machu Picchu station.

More details

LATAM Chile offers flights from Juliaca Airport to Cuzco Airport.

Search flights

Map of how to get from Puno to Machupicchu Guest House, Machu Picchu.
Launch map view
  • Distance: 251.5 miles
  • Duration: 12 h 38 min

What companies run services between Puno, Peru and Machupicchu Guest House, Machu Picchu, Peru?

You can take a train from Puno to Machupicchu Guest House, Machu Picchu via Cusco - Wanchaq, Cusco, and Machu Picchu in around 15 h 11 min.

Airlines
LATAM Chile
Website
latam.com
Flights from Juliaca to Cuzco
Ave. Duration
50 min
When
Every day
Estimated price
$95 - $290
Flights from Arequipa to Cuzco
Ave. Duration
1 h 2 min
When
Every day
Estimated price
$110 - $260
Peruvian Airlines
Website
peruvian.pe
Flights from Arequipa to Cuzco
Ave. Duration
1 h
When
Every day
Estimated price
$220 - $550
Train operators
Inca Rail
Phone
+51 84 581860
Email
consultas@incarail.com
Website
incarail.com
Train from Cusco to Machu Picchu
Ave. Duration
3 h 44 min
Frequency
4 times a day
Schedules at
incarail.com
Book at
incarail.com
Train from Ollantaytambo to Machu Picchu
Ave. Duration
1 h 33 min
Frequency
Hourly
Estimated price
$61
Schedules at
incarail.com
Book at
incarail.com
PeruRail
Phone
51-84-581414
Email
reservas@perurail.com
Website
perurail.com
Train from Puno to Cusco - Wanchaq
Ave. Duration
10 h 20 min
Frequency
3 times a week
Estimated price
$210 - $3,100
Schedules at
perurail.com
Book at
pax1.perurail.com
VIP
$210 - $3,100
Regular
$330 - $460
Train from Ollantaytambo to Machu Picchu
Ave. Duration
1 h 30 min
Frequency
Every 4 hours
Estimated price
$55 - $340
Schedules at
perurail.com
Book at
pax1.perurail.com
VIP
$210 - $340
Regular
$75 - $110
Bus operators
Real Inka
Cruz Del Sur
Phone
+51 1 311-5050
Website
cruzdelsur.com.pe
Bus from Puno to Juliaca
Ave. Duration
1 h
Frequency
Once daily
Estimated price
$6 - $19
Schedules at
cruzdelsur.com.pe
Book at
cruzdelsur.com.pe
Regular in Advance
$6 - $12
Regular
$12 - $17
VIP
$13 - $19
Bus from Puno to Arequipa
Ave. Duration
6 h
Frequency
3 times a day
Estimated price
$10 - $29
Schedules at
cruzdelsur.com.pe
Regular in Advance
$10 - $17
Regular
$18 - $25
VIP
$21 - $29
CIVA
Phone
+51 (1) 418-1111
Email
callcenter@turismociva.com
Website
civa.com.pe
Bus from Puno to Arequipa
Ave. Duration
5 h 30 min
Frequency
Once daily
Estimated price
$1 - $3
Schedules at
civa.com.pe
Bed Regular
$2 - $3
Economy
$1
Semi Bed
$1 - $2
Bed Premium
$1 - $3
Suite
$1 - $3
Peru Tour Bus
Phone
0051 84 632307
Email
reservas@perutourbus.com
Website
perutourbus.com
Bus from Puno to Arequipa
Ave. Duration
6 h
Frequency
Once daily
Schedules at
perutourbus.com
Book at
perutourbus.com
Peru Hop
Phone
+51 1 2422140
Email
info@peruhop.com
Bus from Puno to Arequipa
Ave. Duration
8 h
Frequency
Once daily
Estimated price
$29 - $45
Schedules at
peruhop.com
Book at
peruhop.com

Want to know more about travelling around the world?

Rome2rio's Travel Guide series provide vital information for the global traveller. Read our range of informative guides on popular transport routes and companies - including South Korea: Travelling from Seoul to Busan , Slovenia: Getting from Ljubljana to Lake Bled and Travel Insider: Top Japan travel tips by Beatrix Holland - to help you get the most out of your next trip.

More Questions & Answers

There are 127+ hotels available in Machupicchu Guest House, Machu Picchu. Prices start at $22 USD per night.

More details