Freeport is located at . The city is located along U.S. Route 331 and Florida State Road 20. U.S. 331 runs from north to south to the east of the city, leading north 17 mi (27 km) to DeFuniak Springs, the Walton County seat, and south 11 mi (18 km) to U.S. Route 98 near Santa Rosa Beach. FL-20 runs from west to east through the main part of the city, leading east 17 mi (27 km) to Ebro and west 24 mi (39 km) to Niceville.