NY発ロンドン行きの旅客機の警備のために、客を装って乗り込む航空保安官のビル・マークス(リーアム・ニーソン)。彼は心身ともに疲れきっていたが、身についた習慣から、理由も無く話しかけて来る男や、落ち着きのない男などを、さりげなくチェックしていた。携帯電話で話しながら乗り込んで来た女(ジュリアン・ムーア)が、ビルの隣の男に席を替わってくれと頼む。どうしても窓側に座りたいらしいのだが、その理由は言わない。
離陸のアナウンスと共に、緊張に身体をこわばらせるビル。隣の女がジェンと名乗り、心配そうに声をかけるが、「上空へ行けば大丈夫だ」と答えるビル。ビルの手には、意味ありげなリボンが巻かれていた。落ち着いたビルが、「あなたの仕事は?」と尋ねると、ジェンは言葉を濁し、「少し眠るわ」とはぐらかす。
真夜中、トイレでタバコを吸い、席に戻ったビルの携帯に、送信者不明のメールが届く。乗客の一人だという相手に、「この回線への侵入は連邦犯罪だ」と返信すると、どこから見ているのか「機内トイレでの喫煙も犯罪だ」と返される。そしてビルは、指定の口座に1億5000万ドル送金しなければ、20分ごとに機内の誰かを殺すという脅迫メールを受け取る。
ビルは搭乗しているもう一人の航空保安官ハモンド(アンソン・マウント)を疑うが、彼の携帯の送信履歴に不審なメッセージはなかった。ハモンドはただの悪戯だろうと気に留めない。ビルは機長に報告し、機長は運輸保安局に通報するが、乗客名簿の調査には30分かかると言われる。
ビルは自分の身分を知る客室乗務員ナンシー(ミシェル・ドッカリー)と、犯人とのメールのやりとりの最中メールがついた時、隣で寝ていたジェンを信用し、協力を頼む。機内モニターを見て、ビルがメールをした時に携帯を見た客をチェックしろと言うのだ。
やがて頻繁に携帯を見ていたハモンドが席を立ち、後部トイレへ向かう。強引にトイレに割り込んだビルが、ハモンドの携帯を取り上げるとハモンドは反撃、激しい掴み合いになる。銃を抜いたハモンドにやむなくとどめをさすビル。
「やっちまったな」と嘲笑うようなメールが届く。一人目の犠牲者は、ビルの手によって出されたのだ。ビルは乗客を拘束して荷物や携帯を調べるが、何ひとつ手掛かりは見つからない。乗客名簿を調べた保安局は、「全員問題ない、お前以外は。お前を任務から解く」と通告する。保安局の調査で、犯人の指定口座がビルの名義だと判明していた上に、元警官だったビルには暗い過去があり、今もある問題を抱えていた。今やビルは容疑者の筆頭に上がったのだ。
成す術もないまま、2人目、3人目と、姿なき犯人による凶行が繰り返される。乗務員、乗客、保安官、互いに信じられる者は誰もいない──機内の疑惑と緊張感が頂点に達するなか、次のタイムリミットが迫る──!