After the destruction of Troy, the Trojan prince Aeneas leads a small band of survivors in search of a new home in Italy. Unfortunately, as they sail on their way, they get spotted by the goddess Juno. Juno hates the Trojans because of an old grudge, and because they are destined to become the Romans, who will destroy Carthage, her favorite city. Conspiring with the god of the winds, Juno whips up a storm, forcing the Trojans to take refuge in – you guessed it – Carthage.
Luckily, Aeneas has connections. In fact, his mom, Venus, is the goddess of connections. She introduces him to Dido, the beautiful queen of Carthage, who is recently widowed. Venus gets Amor, the personification of love, to make Dido fall madly in love with Aeneas. That night, at a banquet in his honor, Aeneas tells Dido the story of how Troy was captured, and how he escaped, carrying his father, Anchises, on his back, and leading his son, Ascanius, by the hand. (His wife, Creusa, died in the chaos – making Aeneas single, too.) Next, Aeneas recounts he and his fellow refugees' wanderings over the sea, including their close encounters with various weird mythological creatures. Aeneas's story ends with the death of his father, Anchises.
Aeneas and the Trojans end up wintering in Carthage, and he and Dido become an item. Then Jupiter gets worried that Aeneas is abandoning his destiny of founding a new city. He sends the god Mercury down to tell him to get moving. Aeneas does as he's told, and Dido kills herself.
A storm forces the Trojans to land in Sicily – at the exact place where they buried Anchises a year before. While the Trojans hold athletic contests in the old man's honor, Juno convinces the Trojan women to set fire to the ships. Realizing that not everyone is as jazzed about going to Italy as he is, Aeneas leaves some people in Sicily and sails on to Italy with his A-team. Their first stop is Cumae, in the Bay of Naples, where they visit the Sibyl, a prophetess. She leads Aeneas down to the underworld, where he sees a lot of spooky stuff, talks with his father Anchises, and sees the spirits of future Roman heroes, waiting to be born. He also encounters Dido. He tries to talk to her but she rejects him.
Fired up by what he has seen in the underworld, Aeneas sails to Latium. As it happens, Latinus, the local king, has received an oracle saying his only child, Lavinia, must marry a foreign husband; he offers her to Aeneas in marriage. The problem is that Amata, Latinus's wife, wants their daughter to marry the local prince Turnus. Seeing her opportunity, Juno sends a Fury down to make both Amata and Turnus crazed with rage. Then she tricks Ascanius to shoot a stag kept as a pet by Latinus's gamekeeper. This provokes a war between the Italians and the Trojans.
While the Italians are gathering allies, the god of the River Tiber appears to Aeneas in a dream and tells him to make an alliance with the Arcadian King Evander who lives upriver. Aeneas does as he's told and Evander lends him some troops, including his own son, Pallas. He also tells Aeneas to join forces with the Etruscans. After Aeneas sets out to speak to them, Venus comes down and gives him some armor made by the god Vulcan. It is decorated with scenes from the glorious future of Rome.
Meanwhile, in Aeneas's absence, Turnus and his men attack the Trojan fort, but are unable to capture it. That night, two Trojan warriors, Nisus and Euryalus, try to break through the Italian lines to reach Aeneas, but end up being killed by an Italian patrol. Two days later, Aeneas arrives with his Arcadian and Etruscan allies. In the battle that day, Turnus kills Pallas. The next day, Aeneas and the Italians agree on a twelve-day truce to bury their dead, but it is broken three days later. The ensuing battle leads to the death of Camilla, a warrior queen allied with Turnus.
That evening, Turnus decides to fight Aeneas one-on-one for Lavinia and the kingdom. Unfortunately, the next day, when they are about to fight their duel, the nymph Juturna (Turnus's sister) provokes one of the Italians to throw a spear at the Trojans, starting a new battle. After much fighting, Aeneas finally comes head-to-head with Turnus and wounds him with his spear. As Turnus begs for mercy, Aeneas considers sparing him – until he sees that Turnus is wearing a belt he stole from Pallas. Enraged, Aeneas kills Turnus with his sword.