Die Stadtgemeinde Voitsberg liegt im westlichen Teil des Bezirkes Voitsberg, etwa 17 Kilometer westlich der Landeshauptstadt Graz. Die Stadt liegt in einer Talebene am südlichen Ende des Großraumes des oberen Gradner- und Kainachtales. Das ehemalige Stadtzentrum lag am Tregistbach, rund um die Margarethenkirche. In der Mitte des 12. Jahrhunderts verlagerte sich das Siedlungszentrum jedoch in den Bereich zwischen der neu errichteten Burg Obervoitsberg und der Kainach. Das Stadtgebiet wird von Nordwesten nach Südosten hin von der Kainach durchflossen. Im Südwesten bildet die Teigitsch die Gemeindegrenze zu Krottendorf-Gaisfeld.
Das Stadtzentrum liegt auf einer Seehöhe von 394[2] Metern, während der Kobererkogel mit 606 Metern den höchsten Punkt im Stadtgebiet darstellt.