Nortonville is located in southeastern Hopkins County at (37.187660, -87.456032). U.S. Route 41 passes through the eastern and southern parts of the city, leading north to Madisonville, which is the county seat, and south to Hopkinsville. U.S. Route 62 passes through the northern part of Nortonville, leading east to Greenville and west to Dawson Springs.