The MS Poseidon, a luxury ocean liner named for the Greek god of the sea, is making a transatlantic crossing.
Jennifer Ramsey (Emmy Rossum) and her boyfriend Christian (Mike Vogel) are a young couple hoping to be engaged, but her father, former New York City Mayor Robert (Kurt Russell), has doubts about their relationship. Elena (Mía Maestro), a traveling stowaway, is going to see her ill brother in New York. She is being helped by Valentin (Freddy Rodriguez), a waiter on the ship's staff who met her in a club and agreed to smuggle her on board. Dylan Johns (Josh Lucas) is a smooth-talking professional gambler who develops feelings for a woman, Maggie James (Jacinda Barrett), who has a son, Connor (Jimmy Bennett), to whom Johns grows close to throughout the movie, and Richard Nelson (Richard Dreyfuss) is an architect left distraught by his boyfriend leaving him. Most of the passengers are at a New Year's Eve party in the ship's ballroom, unaware of the danger about to befall them. However, a depressed Nelson, awaiting a midnight phone call from his ex-lover that never comes, sees a 150-foot high rogue wave in the calm open ocean, heading towards the ship. The wave crashes into the starboard side of the ship, causing her to capsize and killing most of the passengers on its decks. As the ship rotates 180 degrees and submerges from the impact, the windows in the hallway explode from the intense force of the wave, causing water to flood into the ship and it begins to sink.
Calm is restored in the ballroom after Captain Michael Bradford (Andre Braugher) assures the passengers that rescue boats are on their way and will be there in a couple of hours, with the air in the sealed ballroom providing ballast to keep the ship afloat. A small group of the surviving passengers attempt to head toward the bow of the ship, where they believe they will have the best chance of escaping the capsized liner. They attempt to make their way through such hazards as fire and water, trying to make it to the bow and escaping through the propeller tube. Yet, one by one, the survivors begin dying as they try to make it to the "bottom" of the ship and the surface. After a while the ship has sunk further, the pressure of the deeper water creating stress on the ballroom windows causing them to rupture, flooding the ballroom, killing all those within it and accelerating the sinking of the ship.
The group finds themselves in the galley and see the bow section is flooded. While finding a new exit, an explosion in the stern causes the bow to rise out of the water, making it accessible. Robert, Christian, Jen and Nelson go first, leaving Dylan, Maggie and Connor behind. Maggie and Dylan find Connor trapped. He is eventually saved by Dylan and the three reunite with the group. In the engine room, Nelson opens a cover in the propeller tube. Knowing that the control room for the propellers is now below water, Robert swims to turn them off. He discovers that the off switch is broken, before running out of air, but he hits the reverse button instead just before he drowns. The group notices that the propellers are turning in the other direction. Dylan finds a nitrogen tank and throws it into the propellers, creating an explosion and therefore stopping them. After climbing through the propeller tube, they jump overboard and into an inflatable raft. The ship rolls on its side due to escaping air, flinging the raft away from the ship. The survivors watch as the Poseidon sinks. After firing a flare, helicopters and nearby ships arrive and save the six survivors.