Bärnbach liegt in der Weststeiermark, eingebettet zwischen dem Heiligen Berg und dem Knobelberg im Westen sowie den Höhenzügen von Hochtregist im Osten. Die Kainach durchfließt das Gebiet von Norden nach Süden, während der Freisingbach im Nordwesten die Grenze zu Kainach bei Voitsberg bildet. Das Stadtzentrum befindet sich auf 424 Metern Seehöhe, der höchste Punkt ist der Hirtlkogel mit 961 Metern an der Grenze zu Köflach.
Erste Spuren einer Besiedlung reichen bis in die Jungsteinzeit zurück, doch die heutige Ortschaft entstand vermutlich durch bairische Siedler vor dem Jahr 1100. Urkundlich erwähnt wurde Bärnbach erstmals 1268/69 als Pernpach, später als Hirzo de Perinpach. Eine wichtige Handelsstraße entlang der Kainach führte durch den Ort und verband das Gebiet mit Salz- und Eisenhandel. Im 13. Jahrhundert entstand das Schloss Alt-Kainach zum Schutz dieser Route, während im 14. Jahrhundert weitere Schlösser wie Kleinkainach und Krottenhof erbaut wurden. Bis ins 19. Jahrhundert blieb Bärnbach ein kleiner, bäuerlich geprägter Ort mit nur 25 Häusern um 1825.
Heute ist Bärnbach eine Stadt mit markanter Beckenlage und geprägt von der ehemaligen Braunkohleförderung in der Oberdorfer Mulde. Das Stadtbild wird von den vier Stadtteilen Bärnbach, Kleinkainach, Mitterdorf und Oberdorf bestimmt, hinzu kommen Siedlungen wie die Peter Leitner-Siedlung und die Piberegg Rollsiedlung. Die Gemeinde gliedert sich in die Katastralgemeinden Bärnbach, Hochtregist und Piberegg, wobei Hochtregist und Piberegg geologisch zum Grazer Bergland gehören.