Взрослый мужчина по имени Пи (Ирфан Кхан) встречается с писателем Янном Мартелом (Рейф Сполл) и рассказывает ему необычную историю своей жизни. Свое имя Писин он получил в честь парижского бассейна, над этим постоянно смеялись его одноклассники, поэтому мальчик-индус решил взять себе сокращенное прозвище Пи. В подростковом возрасте Пи (Сурадж Шарма) его отец Сантош (Адиль Хуссэйн), владевший зоопарком, решает, что семья должна покинуть Индию и переехать в Канаду, привезя с собой половину всех животных.
Однако морское путешествие оказывается не очень приятным. Вскоре судно, на котором путешествовал Пи, попадает в шторм, силе которого подросток искренне восторгается. Матросы разместили его в шлюпке, в которой также сидел кок (Жерар Депардье). Вслед за ними туда прыгнула зебра, после чего шлюпка отделилась от корабля. Судно начало тонуть, а Пи горько рыдал, осознавая, что на нем находилась вся его семья.
Мальчик вынужден продолжить свое путешествие в компании попутчиков по несчастью — вместе с ним в шлюпке находятся гиена, орангутанг Апельсинка, бенгальский тигр Ричард Паркер и зебра со сломанной ногой. Вскоре гиена убивает орангутанга и зебру, ведомая чувством голода, а тигр убивает гиену. В итоге в шлюпке остается лишь грозный полосатый хищник и сам Пи.
Юноша строит плот, на котором размещаются припасы. Они сражаются с тигром Ричардом Паркером, Пи пытается кормит его пойманной рыбой, но надолго ли установлен этот странный и хрупкий мир? Одинокому индусу придется провести на этой шлюпке еще много дней, сталкиваясь с чудесами природы и проявляя максимум смекалки и храбрости.