ママ(ブリー・ラーソン)と5歳の誕生日を迎えたジャック(ジェイコブ・トレンブレイ)は、天窓しかない狭い部屋で暮らしている。夜、二人がオールド・ニックと呼ぶ男がやってきて、服や食料を置いていく。ジャックはママの言いつけで洋服ダンスの中にいる。ママは「息子にもっと栄養を」と抗議するが、半年前から失業して金がないとオールド・ニックは逆ギレする。さらに真夜中にジャックがタンスから出てきたことで、ママとオールド・ニックは争う。翌朝、部屋の電気が切られ寒さに震えるなか、生まれてから一歩も外へ出たことがないジャックに、ママは真実を語る。ママの名前はジョイで、この納屋に7年も閉じ込められていた。さらに外には広い世界があると聞いたジャックは混乱する。電気が回復した部屋で考えを巡らせたジャックは、オールド・ニックをやっつけようとママに持ち掛ける。しかし、ドアのカギの暗証番号はオールド・ニックしか知らない。ママは『モンテ・クリスト伯』からヒントを得て、死んだフリをして運び出させることを思いつく。ママはジャックをカーペットにくるんで段取りを練習させるが、恐怖から癇癪を起こすジャック。ママは、“ハンモックのある家と、ばあばとじいじがいる世界”をきっと気に入ると励ます。しかし、「ママは?」と尋ねられると、2度と息子に会えないかもしれないと知り、言葉に詰まる。そして、オールド・ニックがやってくる。脱出劇は失敗しかけるが、ジャックの記憶力と出会った人たちの機転で、思わぬ展開を迎える。翌朝、ママとジャックは病院で目覚める。ママの父親(ウィリアム・H・メイシー)と母親(ジョアン・アレン)が駆けつけるが、二人が離婚したことを知ってママはショックを受ける。数日の入院後、二人はばあばと新しいパートナーのレオ(トム・マッカムス)が暮らす家へ行く。しかし意外な出来事が次々とママに襲い掛かる。一方、新しい世界を楽しみ始めたジャックは、傷ついたママのためにあることを決意し……。