Старик с женой-старухой живут у моря. Старик добывает пропитание рыбной ловлей, а старуха прядёт пряжу. Однажды в сети старика попадается необычная рыбка, говорящая человечьим голосом. Она обещает любой выкуп, какой рыбак захочет, и просит отпустить её в море, но старик отпускает рыбку, не прося награды. Вернувшись в свою ветхую землянку, он рассказывает жене о случившемся. Обругав мужа, она заставляет его вернуться к морю, позвать рыбку и попросить хотя бы новое корыто вместо разбитого. У моря старик зовёт рыбку, которая появляется и обещает исполнить его желание, говоря: «Не печалься, ступай себе с Богом».
После возвращения домой он видит у жены новое корыто. Однако желания старухи всё возрастают — она заставляет мужа возвращаться к рыбке снова и снова, требуя (сначала для обоих, а потом только для себя самой) всё больше и больше: получить новую избу; быть столбовой дворянкой; быть «вольною царицей».
Море, к которому приходит старик, постепенно меняется от спокойного и синего к чёрному и бурному, а под конец — к штормящему. Отношение старухи к старику тоже меняется: сначала она всё ещё ругает его, потом, став дворянкой, посылает на конюшню, а став царицей, и вовсе прогоняет. Под конец она призывает мужа обратно и требует, чтобы рыбка сделала её «владычицей морскою», причём сама рыбка должна стать у неё в услужении. Рыбка не отвечает на очередную просьбу старика, а когда он возвращается домой, то видит старуху, сидящую перед старой землянкой у старого разбитого корыта.