Despite dominating for large parts of the tie, including a header from Ki Sung Yeung that struck the post just before the break, Celtic fell behind in the 47th minute.
Neil Lennon's Celtic continued to exert pressure on Hearts, creating numerous chances in the process.
One of those opportunities fell to Ki, but again he struck the woodwork with a headed effort.
Hooper's goalscoring intervention looked to have forced extra-time until Hearts were awarded a penalty when Joe Ledley blocked a shot from Marius Zaliukas with his hand. Forster got a hand to Beattie's strike, but he was unable to keep the ball out.
Ledley had a chance to make amends in Celtic's last venture forward, but his volleyed shot was held by Hearts goalkeeper Jamie MacDonald.
Hearts will now take on the Edinburgh rivals Hibs in next month's final. That has not happened since 1896.