Spiro is located at 35°14'27" North, 94°37'9" West (35.241111, -94.619444).
According to the United States Census Bureau, the town has a total area of 2.20 mi2 (5.69 km2). 2.12 mi2 (5.50 km2) of it is land and 0.07 mi2 (0.19 km2) of it is covered by water. The total area is 3.41% water.
Spiro is located in the Central Standard Time (CST) timezone, GMT-06:00. It observes Daylight Saving Time (DST).