แม่น้ำตาปี มีต้นกำเนิดจากเขาใหญ่ (เทือกเขานครศรีธรรมราช) เขตอำเภอทุ่งใหญ่ จังหวัดนครศรีธรรมราช ไหลขึ้นไปทางทิศตะวันตกผ่านอำเภอฉวาง จังหวัดสุราษฎร์ธานี แล้วไหลขึ้นไปทางทิศเหนือ ผ่านอำเภอพระแสง อำเภอเคียนซา จังหวัด สุราษฎร์ธานี แล้วไปบรรจบกับแม่น้ำ พุมดวงที่อำเภอ พุนพิน จังหวัดสุราษฎร์ธานี และไหลลงสู่อ่าวไทยที่อ่าวบ้านดอน จังหวัดสุราษฎร์ธานี แม่น้ำตาปีเป็นแม่น้ำสายใหญ่ที่สุดของภาคใต้ ความลึกเฉลี่ย 1-4 เมตร บริเวณที่ลึกที่สุดประมาณ 6-7 เมตร ในฤดูฝนน้ำไหลท่วมฝั่ง ทำให้สองฝั่งของแม่น้ำตาปีเป็นที่ราบลุ่ม น้ำท่วมถึงเป็นบริเวณกว้าง ในฤดูแล้งน้ำลดจากขอบตลิ่ง หนองน้ำริมฝั่งที่มีขนาดเล็กอาจแห้ง แต่หนองน้ำขนาดใหญ่ยังมีน้ำอยู่ มีพื้นที่รับน้ำบริเวณบ้านกระทูน อำเภอพิปูน 100 ตารางกิโลเมตร (62,500 ไร่) และเมื่อไหลผ่านอำเภอฉวางมีพื้นที่รับน้ำ 880 ตารางกิโลเมตร (550,000 ไร่) บริเวณที่ราบลุ่มน้ำท่วม มีพรรณพืชปกคลุม ได้แก่ อ้อ (Arundo donax) แห้วทรงกระเทียม (Eleocharis dulcis) และหญ้าละมาน (Oryza latifolia) ขึ้นเป็นผืนใหญ่ บริเวณชายฝั่งแม่น้ำมีไม้ยืนต้นไม้พุ่ม ได้แก่ อินทนิลน้ำ (Lagerstroemia speciosa) หว้า (Syzygium cumini) กระทุ่มน้ำ (Nauclea orientalis) ซึ่งขึ้นปะปนกันเป็นป่าละเมาะพบตาม หนองน้ำ
ปากน้ำตาปีหรืออ่าวบ้านดอน ได้รับการประกาศเป็นรายชื่อพื้นที่ชุ่มน้ำที่มีความสำคัญระดับนานาชาติ เป็นพื้นที่ชุ่มน้ำอ่าวบ้านดอน พื้นที่ส่วนใหญ่ ปกคลุมด้วย ป่าชายเลน เป็นแนวแคบๆ ประมาณ 50-100 เมตรจากฝั่งทะเล และตามริมลำแม่น้ำตาปีและลำน้ำสาขา ถัดจากแนวป่าชายเลน ออกไปในทะเลมี หาดเลนที่กว้างใหญ่ ยื่นออกไปในทะเลจากชายฝั่งประมาณ 1-2 กิโลเมตร บางตอนเกิดเป็นสันดอน สามเหลี่ยมปากแม่น้ำ ก้นอ่าว ค่อนข้างตื้น มีความลึก เฉลี่ยประมาณ 1 เมตร