The game begins with Vahn, Adrianna and Kromlech arriving in Baldur's Gate, whereupon they are attacked by a group of thieves led by Karne (Michael Bell). The city watch save the trio and take them to the Elfsong Tavern to recover. There, the bartender, Alyth Elendara (Jennifer Hale), tasks them to clear the tavern's cellar of rats. In the cellar, they discover the thieves are using the tavern's sewer entrance to infiltrate the city. When Elfsong Tavern employee Ethon follows them into the sewers and disappears, they rescue him from thieves, and he directs them to the nearby crypts, where one of the thieves was headed. There, they encounter Fayed (Cam Clarke), a priest of Illmater, who requests their help in stopping the "Orb of the Undead", which has filled the crypts with zombies and skeletons. They destroy the orb and discover the thieves, collectively known as Xantam's Guild, placed it there. Ethon introduces them to Jherek (John Rhys-Davies), a member of the Harpers, a group dedicated to protecting the realms from evil. Impressed with the trio, he invites them to join the Harpers and destroy Xantham's Guild. They agree, and Jherek shows them the guild's entrance in the sewers.
After navigating a gauntlet of traps they face and kill Karne, and then find the guild master, the beholder Xantam (Tony Jay). They fight and kill him, and Jherek asks them to enter a portal which Xantam was guarding. The portal transports them to the Sunset Mountains, whereupon they head to a dwarf mining village, which is oppressed by drow elves. They light a signal fire atop a nearby mountain, calling for aid from neighboring dwarven clans, and enter the mines to rout the drow. After killing the drow priestess, they rescue a dwarven Harper, who tells them of another portal in the mountains. He also tells them that troops and monsters are planning to use the portals to move from the mountains into Baldur's Gate, attacking the city from within. The adventurers head to the portal, which is guarded by the ice dragon Ciraxis. They slay him and pass through the portal into the Marsh of Chelimber.
There they meet Sleyvas (Kevin Michael Richardson), one of the native lizardfolk. He tells them of the nearby "Onyx Tower", and of its inhabitant, Eldrith the Betrayer (Vanessa Marshall), who has sworn vengeance against Baldur's Gate. He reveals that his kin, led by the lizard Sess'sth, are serving Eldrith. The trio fight through hordes of lizardfolk, kill Sess'sth, and cripple the lizard army. Sleyvas leads them to the Onyx Tower, which they enter by taking a detour through the Elemental Plane of Water. Inside the tower, they witness Eldrith's preparations for war and fight their way upwards, through legions of Eldrith's soldiers.
At the penultimate level of the tower they meet the ghost of Keledon (Dwight Schultz), first captain of the company of the Westering Sun. He explains that Eldrith once served Baldur's Gate as its greatest general, fighting a crusade against the Black Horde. After defending the city, she defied orders and led her army in pursuit of the retreating Horde. Trapping them in a ravine, they proved stronger than she had anticipated, and she asked the city for re-enforcements, which never came. Eldrith survived, but her army was defeated, and, furious, she rallied her remaining soldiers to attack Baldur's Gate, but was again defeated. The city's soldiers pursued her and her men to the Marshes of Chelimber, and killed them all. However, Eldrith's rage was such that she returned to life, creating the Onyx Tower, which gave her access to the portals. Seeking revenge, she orchestrated the attacks against Baldur's Gate, and created a dark alliance between Xantam's guild, the drow, and Sess'sth's tribes.
Keledon explains that if the trio defeat Eldrith, the Tower will be destroyed, and the ghosts within will be freed. However, as they cannot leave the tower, it will likely lead to their own deaths. They find Eldrith on the roof of the Tower guarding another portal. She reiterates her plans for the destruction of Baldur's Gate. They fight and defeat her, and as she dies, she repents her actions. With the tower crumbling, the heroes enter the portal, not knowing where it leads.
It is revealed that Sleyvas manipulated the heroes to defeat Eldrith for his unidentified master. He tells his master that the heroes have died within the tower and Eldrith is no longer an obstacle. As such, they can now proceed with their plans. Meanwhile, the trio emerge in an unknown forest, and are surrounded by dark creatures.