Klima na otoku je vrlo blaga, mediteranskog obilježja. Srednje temperature su razmjerno visoke: godišnja je 16,8° C, u najhladnijem mjesecu siječnju 9,1° C, a najtoplijem srpnju 26,9° C. Dnevne i godišnje razlike temperature su male, što je vrlo povoljno za poljoprivredu i turizam.
Broj godišnjih sunčanih sati je visok, čak 2700. Kiše su rijetke, oko 41 dan tijekom godine i to najviše u jesen i zimi, dok u kasno proljeće prevladava suša s rijetkim, kratkotrajnim olujama.Snijeg rijetko padne, najprije u selu Pupnatu i vrhovima oko njega, ali se brzo topi, jer se temperatura rijetko spušta ispod 0° C.
U Pelješkom kanalu je gotovo uvijek vjetrovito, ljeti puše pretežno osvježavajući zapadnjak - maestral, pogodan za jedrenje; zimi jugoistočnjak - jugo, sjeveroistočnjak -hladna bura ili snažni sjeverac-tremuntana. Morske struje u Pelješkom kanalu su dosta slabe, pojačavaju jedino s jugom.
Prosječna temperatura površine mora u ožujku je 12,9° C, more je najtoplije ljeti, u srpnju i kolovozu te rujnu kad je prosjek 22,3 °C. Plime i oseke su blage, razlika izmedu niske i visoke vode je oko 50 cm.