Topsail Beach is located at 34°21'54" North, 77°37'50" West (34.365000, -77.630833).
According to the United States Census Bureau, the town has a total area of 5.85 mi2 (15.16 km2). 4.37 mi2 (11.32 km2) of it is land and 1.48 mi2 (3.83 km2) of it is covered by water. The total area is 25.30% water.
Topsail Beach is located in the Eastern Standard Time (EST) timezone, GMT-05:00. It observes Daylight Saving Time (DST).