It rises in the Blue Ridge Mountains in western McDowell County, North Carolina, approximately 20 miles (30 km) east of Asheville. It flows ENE, falling over two waterfalls, Upper Catawba Falls and Catawba Falls, before being dammed by Lake James, and joining the Linville River. It passes north of Morganton, then southeast through Lake Rhodhiss and Lake Hickory just north of Hickory, and into the Lake Norman reservoir. From Lake Norman it flows south, passing west of Charlotte, then flowing through the Mountain Island Lake and Lake Wylie reservoirs, where it exits the reservoirs approximately 10 miles (15 km) south of the border between North Carolina and South Carolina. The confluence of the South Fork Catawba River and Catawba River is submerged by Lake Wylie near the NC/SC state line.