Tsunami terjadi karena adanya gangguan impulsif terhadap air laut akibat terjadinya perubahan bentuk dasar laut secara tiba-tiba. Ini terjadi karena tiga sebab, yaitu : gempa bumi, letusan gunung api dan longsoran (land slide) yang terjadi di dasar laut. Dari ketiga penyebab tsunami, gempa bumi merupakan penyebab utama. Besar kecilnya gelombang tsunami sangat ditentukan oleh karakteristik gempa bumi yang menyebabkannya.
Bagian terbesar sumber gangguan implusif yang menimbulkan tsunami dahsyat adalah gempa bumi yang terjadi di dasar laut. Walaupun erupsi vulkanik juga dapat menimbulkan tsunami dahsyat, seperti letusan gunung Krakatau pada tahun 1883.
Gempa bumi di dasar laut ini menimbulkan gangguan air laut, yang disebabkan berubahnya profil dasar laut. Profil dasar laut iniumumnya disebabkan karena adanya gempa bumi tektonik yang bisa menyebabkan gerakan tanah tegak lurus dengan permukaan air laut atau permukaan bumi. Apabila gerakan tanah horizontal dengan permukaan laut, maka tidak akan terjadi tsunami.
Apabila gempa terjadi didasar laut, walaupun gerakan tanah akibat gempa ini horizontal, tetapi karena energi gempa besar, maka dapat meruntuhkan tebing-tebing (bukit-bukit) di laut, yang dengan sendirinya gerakan dari runtuhan in adalah tegak lurus dengan permukaan laut. Sehingga walaupun tidak terjadi gempa bumi tetapi karena keadaan bukit/tebing laut sudah labil, maka gaya gravitasi dan arus laut sudah bisa menimbulkan tanah longsor dan akhirnya terjadi tsunami. Hal ini pernah terjadi di Larantuka tahun 1976 dan di Padang tahun 1980.
Gempa-gempa yang paling mungkin dapat menimbulkan tsunami adalah :
1. Gempa bumi yang terjadi di dasar laut.
2. Kedalaman pusat gempa kurang dari 60 km.
3. Magnitudo gempa lebih besar dari 6,0 Skala Richter.
4. Jenis pensesaran gempa tergolong sesar naik atau sesar turun. Gaya-gaya semacam ini biasanya terjadi pada zona bukaan dan zona sesar.