The Sand Fork rises approximately 4 miles northwest of Roanoke in Lewis County and flows west-southwestward into eastern Gilmer County, where it flows into the Little Kanawha River from the north in the town of Sand Fork.