A goalless draw in the first leg of the semifinal left the tie on a knife edge, but the hosts raced into a commanding early lead as Duvan Zapata smashed in an unstoppable shot and Pessina swept home the second inside the opening 16 minutes.
Napoli came to life after the break and pulled one back through Hirving Lozano before Pessina's dinked finish 12 minutes from time left the visitors' hopes of a successful Cup defence in tatters.
"Even in the difficult moments we didn't give up," Zapata told Rai Sport.
"We knew it would be a difficult game, but we did it. We're in the final."
Atalanta have won the Coppa Italia once in their history, in 1962-63, and finished as runners-up on three occasions, most recently in 2018-19.
They will face Italian champions Juventus, who have won the cup a record 13 times, in the final on May 19 (stream live on ESPN+ in the U.S.)
Napoli coach Gennaro Gattuso was facing increasing pressure ahead of the game after a Serie A defeat by mid-table Genoa on Saturday left his side with two wins in their last seven games in all competitions.
Their performance in the first half did little to silence the critics as Zapata was left with time and space to gather a pass, turn and rifle in a superb finish from the edge of the box.
Zapata was involved again when his pass sent Pessina through on goal to finish, and Gattuso rang the changes at halftime by bringing on winger Matteo Politano and switching to a 4-2-3-1 formation.
The move made an immediate impact as a deflected Tiemoue Bakayoko shot fell to Lozano at the back post and although his initial effort was saved, the Mexican sprang to his feet to knock in the rebound.
Atalanta responded as David Ospina was forced into good saves from a Josip Ilicic shot and dipping Pessina volley, but the Colombian was beaten again when Zapata teed up Pessina to race through on goal and lift a finish over the keeper.