Welch is a town in Craig County, Oklahoma, United States. The population was 619 at the 2010 census, an increase of 3.7 percent from 597 in 2000. It is the second largest town in its county.