Sie liegt im süddalmatinischen Archipel, südlich der Halbinsel Peljesac, von der sie durch den Kanal von Mljet getrennt wird. Die Insel hat die Fläche von 100, qkm. Das Inselrelief prägen Hügelketten aus Kalkfelsen mit vielen Karsttälern und Feldern. Das weiteste Feld, Babino polje, erstreckt sich südlich der höchsten Erhebung (Veli grad, 514m). Im äußersten Nordwestteil der Insel liegt eine Landsenkung mit den Seen Veliko jezero und Malo jezero.
Im Inneren der Insel gibt es vier weitere Karstseen, die von den Einheimischen “blatina” und “slatina” (kroat. etwa Tümpelsee) genannt werden. Die größeren Buchten heißen: Pomena, Polace, Tatinica, Sobra, Luka Prozura, Okuklje, Saplunara. Der Küste sind viele kleine Inseln vorgelagert.
Wälder bedecken 72% der Inseloberfläche. Auf der Nordwestseite der Insel sind die schönen Kiefernwälder am besten erhalten. Die Hauptorte (Babino Polje, Prozura, MaranoviCi, Korita, Blato, Ropa, Govedari) liegen im Innern der Insel, gesäumt von fruchtbaren Feldern. Als Häfen dienen ihnen die nächstgelegenen Buchten an der Nordküste. Durch Fährverbindungen hat Mljet Anschluß zur Halbinsel PeljeSac und nach Dubrovnik.