Goose Creek rises at Manassas Gap on the Blue Ridge near Linden. The creek initially flows eastward down the mountain, falling in its first . At Delaplane the creek levels out and turns in a northeasterly direction for another 10 miles, whereupon it passes under U.S. Route 50 and enters Loudoun County. Once in Loudoun, the creek continues in a northeastward direction for to the western foot of Catoctin Mountain, where it turns to the north briefly, before reaching the confluence of the North Fork and then turning to the east and cutting through a gap in the mountain. On the east side of the mountain the creek again turns to northeast, joining with the Little River. The creek flows for through central Loudoun County, reaching the Potomac just east of Leesburg and south of Harrison Island. Goose Creek is partially dammed north of State Route 267. The dam may be portaged through the woods on the eastern shore.