Hope Mills is loed in western Cumberland County at 34°58′14″N 78°57′24″W (, −), south of Fayetteville, the county seat. The town center is next to a dam on Little Rockfish Creek, forming Hope Mills Lake. Little Rockfish Creek flows southeast to Rockfish Creek, a tributary of the Cape Fear River.