Lourdes se situe au pied des Pyrénées, dans la région historique de Bigorre, sur le gave de Pau, au sud-ouest de Tarbes.
La ville s'est bâtie autour d'un piton rocheux héritier du glacier d'Argelès-Gazost et sur lequel s'est construit le château.
La ville est de plus desservie par la ligne ferroviaire de Toulouse à Bayonne.
Une voie express relie la ville à Tarbes vers le nord (en construction) et Argelès-Gazost au sud.