Der Hallwilersee befindet sich in den Kantonen Aargau und Luzern, wobei der Aargauer Teil um ein Vielfaches (circa fünf Sechstel des Seegebietes) grösser ist. Um den See liegen die Gemeinden Beinwil am See, Birrwil, Boniswil, Fahrwangen, Meisterschwanden und Seengen auf Aargauer Seite sowie Schwarzenbach, Mosen und Aesch auf der Luzerner Südseite. Die namensgebende Gemeinde Hallwil liegt nicht am Hallwilersee. Der See befindet sich auf einer Höhe von 449 Metern über Meer im sogenannten Seetal. Die Länge des Hallwilersees beträgt knapp 8.5 Kilometer während der See maximal eineinhalb Kilometer breit ist. Hauptzufluss des Sees ist der vom Baldeggersee kommende Aabach, welcher im Norden bei Seengen den See auch wieder verlässt.