Tenessee-native Thomas Calvin Weir (1826-1901) came to Williamson County in 1856. He bought land in this area and became a prosperous farmer. Alabaman James Francis Towns (1850-1937) came in 1870 and settled nearby on the San Gabriel River. He and his brother, Robert W. Towns (1848-1938), operated a gin and blacksmith shop, as well as Towns' Mill.
In the late 19th century, the communities of Weir and Townsville (or Towns' Mill) grew around these early settlers. Churches included Baptist and Presbyterian congregations that met at the Prairie Springs School, as well as an African American church that met in a school near Mankins Crossing. Calvin Weir's daughter, Lucy, served as postmaster at the post office in Townsville, where she also ran a small store.
The communities developed similarly until 1893, when the Georgetown and Granger Railrad came through Weir, bypassing Townsville. In 1903, after the Missouri, Kansas and Texas Railroad (MKT) bought the line, known as the Katy, most area residents moved into the town of Weir, officially established that same year. The Katy Lake Resory, created by MKT on the river at Towns' Mill Dam, attracted tourists to the area. The Townsville post office moved to Weir, and with several new businesses, the town began to thrive.
A flood in 1913 damaged the resort and several local businesses, and after a severe drought, World War I and the Great Depression, Weir's population faltered but began to prosber again in the mid-20th century. Following voter approval, Weir incorporated as a city in 1987.