Filmul Apa pentru elefanti spune povestea tanarului Jakob Jankovski (Robert Pattinson), caruia ii mor ambii parinti intr-un accident chiar cu o saptamana inainte ca el sa-si dea examenul de absolvire a facultatii de medicina veterinara. Socul il arunca intr-o aventura care ii va schimba viata pentru totdeauna. Pe cand incearca sa fuga de noua sa conditie, el se arunca din intamplare intr-un tren apartinand unui circ care dadea reprezentatii prin America. Este perioada Marii crize economice din anii '30, iar locurile de munca sunt extrem de greu de gasit.
La circ ii cunoaste pe Marlena (Reese Whiterspoon) si August Rosenbluth (Christopher Waltz). El este directorul menajeriei circului si dresorul animalelor, iar sotia sa participa in spectacol cu un numar cu cai dresati. Jacob va primi slujba de veterinar, ceea ce il va aduce in anturajul familiei Rosenbluth, descoperind cruzimea lui August fata de animale, dar si fata de oameni. Intre Marlena si Jacob izbucneste o dragoste intensa, cu atat mai mult cu cat este foarte periculoasa.