St. Charles is a village in Saginaw County in the U.S. state of Michigan. The population was 2,054 at the 2010 census.