Elsa, princess of Arendelle, possesses the ability to create ice and snow. One night while playing, she accidentally freezes her younger sister Anna with her powers. The king and queen seek help from trolls, who heal Anna and remove her memories of her sister's magic. Their leader, Grand Pabbie (Ciarán Hinds), informs them that if Elsa had struck Anna's heart it would have been fatal. In order to protect Elsa and avoid her powers endangering anyone else, the royal family lock themselves away in their castle. Elsa, afraid of hurting Anna again, spends most of her time hiding in her room, creating a rift between the two sisters as they grow up. Years later, their parents are killed at sea during a storm.
Three years after the death of the king and queen, dignitaries from all over the world flock to Arendelle to see Elsa's (Idina Menzel) summer coronation. Among them is the Duke of Weselton (Alan Tudyk), a neighboring royal who wants to exploit Arendelle for profit. Anna (Kristen Bell) is excited that the castle gates will open and she'll finally get to meet people. While strolling through the streets, she meets Prince Hans (Santino Fontana) of the Southern Isles, and the pair quickly fall in love. Though Elsa is terrified of revealing her powers, the coronation goes off without incident. During the reception, Hans proposes to Anna, who accepts. Elsa, however, refuses to grant her blessing, setting off an argument that culminates in her abilities being exposed to everyone. The Duke orders his men to capture her.
Panicking, Elsa flees to the North Mountain, inadvertently unleashing an eternal winter on the kingdom in the process. After coming to terms with her secret being out, she rejoices that she no longer has to be afraid of her powers, building herself an ice palace and unknowingly bringing to life her childhood snowman Olaf (Josh Gad). Anna sets out in search of Elsa, determined to return her to Arendelle, end the winter, and mend their relationship. While getting supplies at Oaken's (Chris Williams) Trading Post, she meets ice trader Kristoff (Jonathan Groff) and his reindeer, Sven, and convinces him to guide her to the North Mountain. After an attack from wolves, the pair meet Olaf, who leads them to Elsa's ice palace.
Once there, Anna attempts to persuade her sister to return to the kingdom. Elsa refuses however, still afraid of hurting people and happy with her newfound freedom. As Anna persists, Elsa becomes agitated and accidentally strikes her in the heart, freezing it. In desperation to get her sister to leave, Elsa creates a giant snow monster to throw them out. After they outrun it, Kristoff notices Anna's hair turning white, and decides to take her back to his adoptive family of trolls. Grand Pabbie says that only "an act of true love" can thaw a frozen heart. Kristoff races back to Arendelle to get Anna to Hans, believing his true love's kiss will save her.
Meanwhile, Hans has taken a search party to look for Anna and arrives at Elsa's palace. Two of the Duke's men go after her, believing her death will end the winter. Elsa fights them off, but is knocked out and brought back to the kingdom by Hans to be imprisoned. He pleads with her to undo the winter curse, but she admits she doesn't know how. Kristoff arrives with Anna, who begs Hans to kiss her and break the spell before she freezes entirely. Hans reveals he only pretended to love her so he could marry her to get to Arendelle's throne, and traps her. He plans to let Anna die, have Elsa executed, and become ruler of the kingdom.
Elsa breaks free of her prison and tries to escape through the blizzarding fjord. Olaf comes to Anna's rescue and reveals Kristoff is in love with her. The two travel out onto the fjord to find him. Hans catches up to Elsa and tells her Anna is dead because of her. Her grief clears away the storm, giving Kristoff and Anna a chance to reach each other. But seeing that Hans is about to kill Elsa, Anna instead throws herself between the two and freezes solid, blocking the blow. Within moments she begins to thaw: sacrificing herself to save her sister was an act of true love.
Elsa realizes love is the key to controlling her powers and thaws the kingdom, while maintaining a personal microclimate for Olaf to prevent him from melting. Hans is sent back to the Southern Isles to face punishment, and Elsa cuts off trade with Weselton. Anna and Kristoff share a kiss. Elsa promises to never close the castle gates again and reconciles with Anna, and everyone celebrates.
In a post-credits scene, the giant snow monster finds Elsa's tiara in the ice palace (which she discarded earlier in the film) and wears it, smiling.