銀行員のサム・ウィート(パトリック・スウェイジ)は恋人のモリー・ジャンセン(デミ・ムーア)と一緒に幸福な共同生活を始める。しかしモリーがサムにプロポーズした晩、2人を暴漢が襲い、モリーを守ろうとしたサムは撃ち殺されてしまう。地上を離れたサムの魂は天国へ行くことを拒否し、モリーをいつまでも見守ることを選ぶが、彼女に声をかけることさえできないのだった。ある日、サムは自分を殺した男を目撃し、その男がウィリー・ロペス(リック・アビルス)という名であることを知るが、それを伝える術もなく途方に暮れている所に、霊媒師オダ・メイ・ブラウン(ウーピー・ゴールドバーグ)に出会う。