Bad Schandau liegt am Nationalpark Sächsische Schweiz und ist der Verkehrsknotenpunkt im Oberen Elbtal. Zwei Brücken verbinden die beiden Seiten der Elbe. Die Hohe Straße ist die Verbindung nach Sebnitz und in die Gemeinde Kirnitzschtal. Über das Lachsbachtal gelangt man nach Hohnstein und über das Krippenbachtal in die Orte auf der linken Elbseite.
Zur Stadt gehören Postelwitz, Schmilka und Ostrau auf der rechten und Krippen auf der linken Elbseite. Porschdorf, Waltersdorf und Prossen elbabwärts sind ebenfalls Ortsteile westlich von Bad Schandau.