Mill Creek begins at the confluence of South Fork Mill Creek and North Fork Mill Creek in Coon Hollow, about east of Sublimity. It flows generally west, passing under
Oregon Route 22 between Sublimity, to the creek's
right, and Stayton, to the
left. Near river mile (RM) 18 or river kilometer (RK) 29, the creek receives
Salem Ditch from the left; the ditch transports water from the
North Santiam River to Mill Creek. The creek reaches Aumsville, on the stream's right, at RM 15 (RK 24), and Beaver Creek enters from the right just beyond RM 12 (RK 19). The creek bisects Turner, situated from the
mouth. At Turner, Franzen Reservoir is to the right, and Perrin Lateral enters from the left; like Salem Ditch, it is an artificial channel that carries water from the North Santiam River to Mill Creek. Slightly west of Turner, Mill Creek receives Battle Creek from the left and turns north, passing under Salem–Turner Road at about RM 7 (RK 11). Less than further downstream, Mill Creek passes under
Interstate 5, which it parallels for about before passing under Route 22 again and turning northwest. Along the I-5 stretch,
Walter Wirth Lake and
McNary Field (Salem Municipal Airport) are on the left; near Route 22, the
unincorporated neighborhood of
Four Corners is on the right. At RM 3.5 (RK 5.6), the creek intersects
Shelton Ditch, an artificial channel on the left that diverts water from Mill Creek to
Pringle Creek. in Salem. Cutting through central Salem, the creek intersects Mill Race (another artificial channel diverting water to Pringle Creek) at RM 2.3 (RK 3.7). After passing a
stream gauge at RM 1.1 (RK 1.8), Mill Creek flows by the
Oregon State Penitentiary, on the right, the
Oregon State Capitol, on the left, and
North Salem High School, on the right. The creek enters the Willamette River in downtown Salem, opposite Wallace Park, about from the larger stream's confluence with the
Columbia River. ==Watershed==