Major rivers flowing through the district are Chaliyar, Kadalundi River, Bharathappuzha, and Tirur River.
Chaliyar has a total length of about 168 km.
and a drainage area of 2,818 km² (1,088 sq mi).
It passes through Nilambur, Mampad, Edavanna, Areekode, and Vazhakkad in  district.
Karimpuzha, the largest tributary of Chaliyar, and Thuthapuzha, one of the largest tributaries of Bharathappuzha, also flow through district.
Kadalundi River passes through Melattur, Pandikkad, Malappuram, Panakkad, Parappur, Kooriyad, and Tirurangadi.
It has a length of 130 km, with a catchment area of 1,114 km² (430 sq mi) and a total runoff of 2189 million cubic feet.
Bharathappuzha has a total length of 209 km.
It flows through Thootha, Elamkulam, Pulamanthole, and joins the main river at Pallippuram.
Then it again reaches the district at Thiruvegappura after flowing through some neighbouring districts.
Tirur River is 48 km long.
It joins with  Bharathappuzha near to the Ponnani coast.
Besides these large rivers, the district also has a small river called Purapparamba River, which is just 8 km long.
It is connected to major rivers via Conolly Canal.
Major rivers flowing through the district are Chaliyar, Kadalundi River, Bharathappuzha, and Tirur River. Chaliyar has a total length of about 168 km. and a drainage area of 2,818 km² (1,088 sq mi). It passes through Nilambur, Mampad, Edavanna, Areekode, and Vazhakkad in  district. Karimpuzha, the largest tributary of Chaliyar, and Thuthapuzha, one of the largest tributaries of Bharathappuzha, also flow through district. Kadalundi River passes through Melattur, Pandikkad, Malappuram, Panakkad, Parappur, Kooriyad, and Tirurangadi. It has a length of 130 km, with a catchment area of 1,114 km² (430 sq mi) and a total runoff of 2189 million cubic feet. Bharathappuzha has a total length of 209 km. It flows through Thootha, Elamkulam, Pulamanthole, and joins the main river at Pallippuram. Then it again reaches the district at Thiruvegappura after flowing through some neighbouring districts. Tirur River is 48 km long. It joins with  Bharathappuzha near to the Ponnani coast. Besides these large rivers, the district also has a small river called Purapparamba River, which is just 8 km long. It is connected to major rivers via Conolly Canal.
Malappuram district