La commune de Saint-Flour, traversée par le 45e parallèle nord, est de ce fait située à égale distance du pôle Nord et de l’équateur terrestre (environ 5 000 km).
La ville de Saint-Flour est séparée en deux étages, la « ville haute » et la « ville basse ». La ville haute est située sur la Planèze, grand plateau volcanique du Cantal, à 900 mètres d’altitude. La ville basse est construite dans la vallée de l’Ander.
D’un poème de Camille Gandilhon Gens d’Armes, elle a conservé le surnom de Cité du vent2. Elle a honoré le poète d’un beau buste en bronze sur une place de la vieille ville.
La ville est située sur l’ancienne route nationale 9 et sur l’autoroute A75 qui relient Paris à Béziers.
Roueyre, village faisant partie intégrante de la ville de Saint-Flour, est traversé par la D 679 reliant Saint-Flour et Talizat.