Lewis Ferguson headed in a corner 11 minutes from time to book Aberdeen's place in the final, where it will meet Celtic.
Brendan Rodgers' side was a 3-0 winner against Hearts thanks to second-half goals from Scott Sinclair, James Forrest and Ryan Christie.
"The purpose for us today was to get to another final. We knew it was going to be tough because Hearts have started the season very well," Rodgers said.
"We know when we bring our game we can be a threat to any team. We were outstanding in the second half."
Celtic will face Aberdeen in the final at Hampden Park on 3 December (AEDT) as Rodgers aims to win the tournament for the third year in a row.