La commune de Grézolles est située au nord du département de la Loire (42), à une trentaine de kilomètres au sud-est de l’agglomération de Roanne et à environ 7 kilomètres de Saint-Germain-Laval, chef-lieu de canton.
Le territoire est traversé par les infrastructures suivantes :
– la RD1, route touristique de Vichy, en provenance de Saint-Germain-Laval et en direction de Saint Just-en-Chevalet. (axe principal de la commune – 1 750 véhicules / jour dont 10 % de poids lourds).
– la RD 26.
– l’autoroute A89 Lyon Bordeaux via Clermont-Ferrand.
Le village est situé à une altitude allant de 453 à 611 mètres.