У пионера Степана в жизни важная цель — успеть сделать географическое открытие. Уже открыт Южный полюс и Берингов пролив, надо спешить и поэтому не остаётся времени на уроки.
Сестра Таня просит помочь решить арифметическую задачу. Ответ получается сомнительный, но это и не важно, во всяком случае, судовождение серьёзней.
В ожидании соседа, моряка Михал Михалыча, который обещал дать компас, Стёпа читает книгу «Путешествие на „Ястребе“» и засыпает. Во сне он — капитан парусного судна «Ястреб», его товарищ Володя — штурман и помощник по продовольственной части, а Михал Михалыч — боцман. Им предстоит кругосветное путешествие. Надо проложить курс, но работать с секстантом Стёпа не умеет, поэтому курс утверждён им без проверки.
На своём пути «Ястреб» встречает множество опасностей. За судном устремляется акула, чтобы съесть экипаж, но её останавливает выброшенный за борт Володин обед (шоколадный торт, лимонад с бисквитами и сто порций мороженого), от которого акула замерзает, превращаясь в айсберг. Затем «Ястреб» оказывается в полярных водах, где, проламывая лёд, подбирает двух белых медвежат, впоследствии ставших помощниками Михал Михалыча. Стёпа замечает неизвестный остров и приказывает плыть к нему, в надежде открыть новую, ещё не изведанную землю, но это оказывается коралловый риф, и лишь опыт Михал Михалыча и смелость матросов не дали судну утонуть. Наконец, ночью Стёпа и Володя видят огни в воде и решают, что океан горит, объявляя пожар, но Михал Михалыч объясняет, что «Ястреб» в тропических водах, где плавают светящиеся рыбы.
Радист парусника получает сигнал SOS. В районе острова Зелёных Кактусов потерпел крушение и тонет пароход «Ласточка». Пассажирами на нём — сестра Таня и её любимые игрушки. Надо сделать вычисление, чтобы «Ястреб» не подошёл во время отлива, тогда спасение будет невозможным (задача оказывается той же, что и в учебнике).
По пути Володя уговаривает рулевого сделать короткую остановку у острова, где растёт множество деревьев с фруктами. Однако там на них нападают обезьяны, которые похищают Володю и издеваются над ним. Ценой неимоверных усилий его удаётся спасти.
На острове начинается извержение вулкана, а спасателей нет. Когда судно подходит к острову, начинается отлив. Капитан Стёпа опять допустил ошибку при решении задачи. Матросы спускают шлюпку и по бушующим волнам едва добираются до берега. Таню с куклами сажают в шлюпку, но от сильного извержения шлюпка с членами экипажа и спасёнными переворачивается, и на этом Стёпа просыпается.
Проснувшись, Степан понимает, что хорошим моряком без прилежной учёбы не станешь, и решает пока не уходить в море. А у пришедшего домой Михал Михалыча он просит не компас, а помощи в решении десятичных дробей.