娘の婚礼からの帰途にあったナポリ王アロンゾー(デイヴィッド・ストラザーン)は、海上で突然の大嵐に襲われる。王弟セバスチャン(アラン・カミング)、忠実な老顧問官ゴンザーロー(トム・コンティ)、ミラノ大公アントーニオ(クリス・クーパー)らが乗った難破船は、命からがら孤島に流れ着く。しかし、アロンゾーの息子ファーディナンド(リーヴ・カーニー)を見失っていた。この嵐は、この孤島に住むプロスペラ(ヘレン・ミレン)が魔術を使って起こしたものだった。プロスペラは名君だったミラノ大公の妃で、夫の亡き後は女大公として民に愛されていた。しかし12年前、弟アントーニオとアロンゾーらの謀略で、一人娘のミランダ(フェリシティ・ジョーンズ)と共に粗末な船で追放された。プロスペラは孤島で魔術の腕を極め、空気の妖精エアリエル(ベン・ウィショー)を操り、怪物キャリバン(ジャイモン・フンスー)に雑事をさせて暮らしながら、裏切り者たちに復讐を果たそうと目論んでいた。ミランダは、エアリエルの歌声に導かれた王子ファーディナンドと出会う。お互いの美しさに一瞬で恋に落ちる2人だったが、これもプロスペラの計らいだった。アロンゾーたちは、森で王子を探していた。ゴンザーローとアロンゾーは、エアリエルの魔法で深い眠りにつく。アントーニオはセバスチャンに、ナポリ王座への野心をたきつけて、2人を殺すようそそのかす。しかし剣が振り下ろされる寸前、アロンゾーとゴンザーローはエアリエルの声で起こされ、計略は失敗する。プロスペラに不満を抱いていたキャリバンは、王の道化師トリンキュロー(ラッセル・ブランド)と酒蔵係ステファノー(アルフレッド・モリナ)と出会う。2人に飲まされた酒に感動したキャリバンは、2人を主人と仰ぎ、プロスペラを殺してこの島の王になれとけしかける。アロンゾーたちはエアリエルの罠にかかり、12年前の罪を咎める声を聞く。錯乱する一行。プロスペラの復讐の結末は? 若い恋人たちの運命は?