Rome2Rio

How to get fromJohannesburg to Machu Picchuby plane, train, bus, or car

Find Transport to Machu Picchu

See all options

There are 4 ways to get from Johannesburg to Machu Picchu by plane, train, bus, or car

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

  1. Fly to Alejandro Velasco Astete International Airport, Train + Bus

    best
    1. Fly from Johannesburg International Airport (JNB) to Alejandro Velasco Astete International Airport (CUZ)plane plane JNB - CUZ
    2. Take the train from Cusco - Wanchaq to Machu Picchu Pueblotrain train
    28h 45m
    $538–2,842
  2. Fly to Puerto Maldonado, bus, train

    1. Fly from Johannesburg International Airport (JNB) to Puerto Maldonado (PEM)plane plane JNB - PEM
    2. Take the bus from Puerto Maldonado to Cuscobus bus
    3. Take the bus from Terminal Terrestre del Cusco to Avenida Ferrocarrilbus bus
    4. Take the train from Ollantaytambo to Machu Picchu Pueblotrain train
    39h 1m
    $585–2,250
  3. Fly to Coronel Fap Alfredo Mendívil Duarte Airport, drive

    1. Fly from Johannesburg International Airport (JNB) to Coronel Fap Alfredo Mendívil Duarte Airport (AYP)plane plane JNB - AYP
    2. Drive from Coronel Fap Alfredo Mendívil Duarte Airport (AYP) to Machu Picchucar car
    31h 30m
    $748–2,047
  4. Fly to Inca Manco Cápac International Airport, bus, train

    1. Fly from Johannesburg International Airport (JNB) to Inca Manco Cápac International Airport (JUL)plane plane JNB - JUL
    2. Take the bus from Puno to Cusco Bus Stationbus bus
    3. Take the bus from Terminal Terrestre del Cusco to Avenida Ferrocarrilbus bus
    4. Take the train from Ollantaytambo to Machu Picchu Pueblotrain train
    35h 30m
    $771–2,514

Johannesburg International Airport (JNB) to Alejandro Velasco Astete International Airport (CUZ) flights

Calendar10Weekly Planes
Duration24h 1mAverage Duration
Ticket$439Cheapest Price
See schedules

Questions & Answers

What companies run services between Johannesburg, South Africa and Machu Picchu, Peru?

There is no direct connection from Johannesburg to Machu Picchu. However, you can take the taxi to Johannesburg-Airport-JNB airport, fly to Alejandro Velasco Astete International Airport (CUZ), walk to Cusco Airport, take the bus to Avenida Pardo, walk to Cusco - Wanchaq, take the train to Machu Picchu Pueblo, walk to Aguas Calientes, then take the bus to Machu Picchu. Alternatively, you can take the taxi to Johannesburg-Airport-JNB airport, fly to Puerto Maldonado (PEM), take the taxi to Puerto Maldonado, take the bus to Cusco, take the bus to Avenida Ferrocarril, walk to Ollantaytambo, take the train to Machu Picchu Pueblo, walk to Aguas Calientes, then take the bus to Machu Picchu.

Airlines
Train operators
Bus operators

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 Which London airport should I choose?, Why you should take the train in the US, and Need to know: Greyhound - to help you get the most out of your next trip.