ในอดีต สาเหตุของการเกิดน้ำท่วมกรุงเทพมหานครและปริมณฑลนั้น เป็นผลมาจากภัยธรรมชาติ คือ ปริมาณน้ำฝนและน้ำเหนือที่หลากลงมา มีปริมาณมากกว่าความจุของแม่น้ำ แต่ในปัจจุบัน จากการที่กรุงเทพมหานครได้มีการพัฒนาและเจริญเติบโตอย่างรวดเร็ว ทำให้เกิดสาเหตุของน้ำท่วมอื่นๆ เป็นตัวเพิ่มความรุนแรงของน้ำท่วมมากยิ่งขึ้น ซึ่งสามารถจำแนกสาเหตุหลักๆ ของน้ำท่วมกรุงเทพมหานครและปริมณฑลได้ดังนี้
๑. น้ำท่วมที่เกิดจากสภาพภูมิประเทศของกรุงเทพมหานคร เนื่องจากมีพื้นที่ลาดเทจากด้านตะวันออกลงสู่แม่น้ำเจ้าพระยา ดังนั้น เมื่อฝนตกในปริมาณมาก จะถ่ายเทไหลผ่านพื้นที่กรุงเทพมหานคร เพื่อลงสู่แม่น้ำเจ้าพระยา หากการระบายน้ำไม่เป็นไปอย่างสมดุล ทำให้เกิดสภาวะน้ำท่วมขึ้นได้
๒. น้ำท่วมที่เกิดจากน้ำเหนือไหลหลากลงมาในปริมาณมาก ซึ่งก็ได้มีการพยายามลดปริมาณน้ำให้น้อยลงโดยการสร้างเขื่อนเก็บกักน้ำไว้บางส่วน แล้วจึงปล่อยปริมาณน้ำที่เหลือลงสู่ที่ราบลุ่มภาคกลางและแม่น้ำเจ้าพระยา ผ่านกรุงเทพมหานคร ซึ่งในปัจจุบัน แม่น้ำเจ้าพระยา สามารถรับปริมาณน้ำได้ประมาณ ๒,๐๐๐ ลูกบาศก์เมตรต่อวินาที หากปริมาณน้ำมากกว่านี้อย่างเช่นในปี พ.ศ. ๒๕๒๑ และ ๒๕๒๓ มีปริมาณน้ำไหลผ่านช่วงดังกล่าวกว่า ๔,๐๐๐ ลูกบาศก์เมตรต่อวินาที จึงทำให้น้ำไหลบ่าล้นท่วมสองฝั่งแม่น้ำ
๓. น้ำทะเลหนุน เนื่องจากกรุงเทพมหานครอยู่ใกล้ปากอ่าว และพื้นผิวของกรุงเทพมหานครมีระดับความสูงประมาณ ๐.๑-๕.๐ เมตร เหนือระดับน้ำทะเลปานกลาง ในช่วงเดือนตุลาคมถึงเดือนธันวาคม จะเป็นช่วงที่น้ำทะเลหนุนสูงและไหลย้อนกลับเข้าสู่แม่น้ำเจ้าพระยาผ่านกรุงเทพมหานคร เช่น ในปีพ.ศ. ๒๕๑๘,๒๕๒๑,๒๕๒๓ และ ๒๕๒๖ ซึ่งมีระดับน้ำถึง ๒.๑๐, ๒.๐๕ และ ๒.๑๓ เมตร และถ้าปริมาณน้ำและน้ำฝนซึ่งตกหนักเกิดขึ้นพร้อม ๆ กันกับน้ำทะเลหนุนก็จะเปิดผลทำให้แม่น้ำเจ้าพระยาล้นฝั่งอีกเช่นกัน
๔. แผ่นดินทรุด จากการสำรวจพบว่า พื้นที่ในเขตกรุงเทพมหานคร มีการทรุดตัวอันเนื่องมาจากการนำเอาน้ำใต้ดินขึ้นมาใช้ประโยชน์ในการอุปโภคบริโภคเกินกว่าปริมาณน้ำที่ไหลกลับเข้าไปทดแทน ในอัตราประมาณ ๕-๑๐ เซ็นติเมตรต่อปี โดยเฉพาะพื้นที่เขตพระโขนง บางกะปิ และห้วยขวาง จึงทำให้พื้นดินเป็นแอ่งกะทะ ซึ่งเป็นอุปสรรคต่อการระบายน้ำจากสาเหตุนี้จะเห็นได้ว่า เป็นการเพิ่มอิทธิพลให้กับการหนุนของน้ำทะเลและอื่น ๆ เนื่องจากการทรุดตัวของพื้นที่ซึ่งยังดำเนินต่อไปเรื่อย ๆ ทั้ง ๆ ที่รัฐบาลพยายามหยุดการใช้น้ำใต้ดินนี้แล้ว กรุงเทพมหานครก็จะทรุดตัวต่อไปจนระดับน้ำหนุนอยู่เหนือระดับผิวดินต่ำสุดเกือบ ๓ เมตรในปี พ.ศ. ๒๕๔๓ โดยประมาณ อันจะก่อให้เกิดความเสียหายต่อกรุงเทพมหานครเพิ่มขึ้นตามลำดับ
๕. การถูกทำลายของสภาพการระบายน้ำที่อยู่ตามธรรมชาติ เนื่องจากมีการวางแผนใช้ประโยชน์ที่ดินอย่างไม่รัดกุมและรอบคอบ มีการเปลี่ยนระบบระบายน้ำในเมืองจากคลองธรรมชาติมาสู่ระบบท่อ ซึ่งมีขนาดไม่เพียงพอต่อการระบายน้ำและยังมีปัญหาการอุดตัน หรือการสร้างถนนในลักษณะที่กีดขวางทิศทางการไหลของน้ำ โดยมีขนาดของช่องระบายน้ำไม่เพียงพอ สาเหตุเหล่านี้จะมีผลทำให้เกิดสภาวะน้ำท่วมขังในพื้นที่กรุงเทพมหานครโดยทั่วไปเมื่อเกิดฝนตกหนัก