Located on the western banks of the St. Clair River, the city's name is taken from the river, which in turn was named for Lake Saint Clair, named by French explorers in the 17th century. The expedition of French explorer René Robert Cavelier, Sieur de La Salle entered the lake on August 12, 1679, the feast day of Saint Clare of Assisi, and named it named it Lac Sainte-Claire in her honor. The lake is named on English maps as early as 1710 as Saint Clare. The spelling was anglicized as early as the 1755 Mitchell Map, when the lake's name was spelled as "St. Clair," as it is currently. The name is sometimes attributed to honoring the American Revolutionary War General and Governor of the Northwest Territory Arthur St. Clair, but it was in use with the current spelling long before St. Clair was a notable figure. The earlier name of the lake may have been conflated with that of the general in naming some of the political entities near the lake and the river, such as St. Clair County, St. Clair Township, and the cities of St. Clair and St. Clair Shores.
Some have thought that the name was in honor of Patrick Sinclair, a British officer who purchased land on the St. Clair River at the outlet of the Pine River. There in 1764 he built Fort Sinclair, which was in use for nearly twenty years before being abandoned.