Fannin is southwest of Victoria toward Goliad on US 59 between the San Antonio River and Coleto Creek Reservoir.
The Goliad County settlement, on Perdido Creek near the site of James Fannin's defeat in 1836 in the battle of Coleto, was established sometime before 1852. The town's name had been changed to Perdido, Spanish for "lost," by the time the second post office was established in 1873. Although Perdido was on the Victoria-Goliad road, the Gulf, Western Texas and Pacific Railway was routed a mile to the south in 1889. The new depot was called Fannin.
The Hanley Hotel operated continuously from 1890 to 1950, though in its later years it was known primarily for its restaurant. In 1986 the post office, located in the town's single store, served ninety-four residents, and in 1990 the population was 105.
Fannin Battleground State Park is located less than a mile south of town.