Naunhof liegt 20 km südöstlich von Leipzig, in der Leipziger Tieflandsbucht und wird zu 75 Prozent von Wald umschlossen. Durch Naunhof fließt die Parthe. Die Stadt ist für ihre Badeseen (ehemalige Kiesgruben) bekannt. So gibt es den Naunhofer See (nach dem Flurstück „Die Grille“ auch Grillensee genannt), den Ammelshainer See (auch bekannt als Moritzsee – dieser Name rührt vom ehemaligen Moritztümpel her, der sich am Ort der späteren Kiesgrube befand) und weiter westlich den Albrechtshainer See.