Punkaharju sijaitsee Etelä-Savossa, hyvien liikenneyhteyksien päässä. Vuoden 2013 kuntaliitoksen myötä Punkaharju on osa Savonlinnan kaupunkia.
Helsingistä Punkaharjulle on matkaa n. 340 km ja Punkaharjulta Savonlinnan keskustaan on n. 35 km.
Punkaharjun ja Savonlinnan välin pääset kätevästi mukavalla paikallisjunalla. Juna pysähtyy Punkaharjun keskustan lisäksi Retretin pysäkillä Tuunaansaaressa ja Lustossa. Savonlinnassa pysäkki on kauppatorin läheisyydessä. Lähin lentokenttä on noin 30 kilometrin päässä Savonlinnassa.