While preparing to take Tommy, her autistic son, on a boat trip with her friend Greg, Jess hears the doorbell ring, but no one is there. Jess is shown later arriving at a Florida harbour without Tommy, explaining that he is at his special needs school, and boards Greg's boat. She meets his married friends Sally and Downey, Sally's friend Heather, and Victor, a runaway teen living with Greg. While out at sea, a storm approaches, and they pick up a distress signal while radioing the coast guard. The storm capsizes the boat, during which Heather is swept out into the water. The others climb onto the overturned boat when the storm clears.
They board an ocean liner as it passes; it appears to be deserted yet there is fresh food in the dining room. Jess experiences a growing sense of déjà vu as they explore. They find Jess's keys near a display case for Aeolus, the ship's namesake. Jess spots someone watching them and Victor gives chase. She and Greg find "Go To Theater" written in blood on a mirror. She returns to the dining room, where the food is now rotting. Victor, covered in blood, tries to kill Jess; she fights him off. She hears gunfire and follows it to a theater, where Greg lies dead of a gunshot. Sally and Downey say that Greg told them Jess shot him. A burlap-masked shooter kills them and chases Jess; she disarms the shooter, who tells her "You have to kill them; it's the only way to get home" before falling overboard.
She hears yelling and sees herself and the others alive on Greg's boat. After they board, Jess becomes the earlier unseen figure: she drops her keys near the display case, is spotted, and attempts to warn Victor when he chases her, only to accidentally impale his head on a wall hook. She finds dozens of duplicates of the shooter's outfit, shotgun, her own locket, and a note saying to kill them all when they board. She takes a shotgun, intending to "change the pattern," but the shooter, another Jess, kills Greg and Downey before mortally wounding Sally.
The first Jess chases Sally, who sends the distress signal heard on Greg's boat. Jess catches up to her on a deck filled with dozens of Sally corpses, and Sally succumbs to her wound as, below them, the newest Jess kills the shooter Jess. The overturned boat returns again, and Jess realises the loop restarts once everyone is killed. Desperate to stop the loop, Jess sets everything from the first loop into motion, with herself as the shooter. After she is disarmed during the fight on the front deck, she urges her counterpart to kill everyone, and falls overboard.
She awakens washed ashore and discovers that it is the same morning. She returns home and watches from outside her house as her double abuses Tommy out of anger toward his autism. Promising to change, she distracts her counterpart with the doorbell, then kills her, puts the bagged body in the car trunk, and leaves with Tommy. A gull hits their windscreen and dies, but when she picks it up and disposes of it, she sees a pile of dead gulls. Realising that she is still trapped in the loop, Jess hurriedly drives away, but crashes into a truck and Tommy is killed and the earlier double (whom Jess killed) is seen dead at the scene. In the aftermath, the real Jess stands watching the accident scene. A taxi driver approaches and she accepts a ride to the harbour. After promising to return, she joins the others on Greg's boat, starting the loop again.
Melissa George as Jess
Michael Dorman as Greg
Rachael Carpani as Sally
Henry Nixon as Downey
Emma Lung as Heather
Liam Hemsworth as Victor
Joshua McIvor as Tommy
Bryan Probets as Cab Driver