A last-gasp penalty from former Celtic striker Craig Beattie knocked out the Hoops as Hearts set up the first Edinburgh derby Scottish Cup final since 1896.
Beattie struck confidently past keeper Fraser Forster after a shot from Marius Zaliukas had hit the hand of Joe Ledley. Beattie ran behind the goal to celebrate, pulling off his shirt as he darted behind the goal and hoisting it above his pale torso as Hearts fans went wild.
The penalty award infuriated Celtic boss Neil Lennon who raced on to the pitch at the full-time whistle to tell referee Euan Norris in no uncertain terms that he was unhappy with the decision.
Stephen Elliott was given the nod up front for Hearts with Beattie only regarded fit enough for the bench, while Gary Glen dropped out of the squad completely.
Elliott intercepted a poor back pass from Kelvin Wilson early in the match but had his shot blocked by Forster at point-blank range.
Celtic started to pick their passes and a Kris Commons free-kick found Michael Lustig, who ought to have done better than head over from eight yards, while Ian Black was perhaps fortunate to pick up only a yellow card with a high and late challenge on Ledley.
Celtic striker Gary Hooper then glanced a header across the face of goal following a fine curling Charlie Mulgrew cross as the Glasgow team started to take control.
Commons was handed a great chance to score when Andy Webster was short with a back-pass, but the Scotland midfielder miscontrolled his attempt to round goalkeeper Jamie MacDonald.
Somehow the Jambos survived unscathed until the break after a pinpoint cross from Georgios Samaras found the diving head of Ki Sung-Yeung, but the ball rebounded off the inside of the post and clear.
Hearts manager Paulo Sergio made a change at the break, with Scott Robinson being replaced with Beattie, who made an instant impact within 70 seconds.
The former West Brom and Swansea striker’s pass deflected off Wilson into the path of Rudi Skacel, who rounded Forster and fired emphatically into the roof of the net from a tight angle.
Ki went close to an equaliser with a blistering drive from 16 yards that just evaded the crossbar.
Skacel then forced a full-stretch diving save from Forster with a powerful effort from 20 yards and fired another effort just wide.
Ki had another great chance with a header but found the outside of the post from five yards after being found unmarked by Commons, whose next free-kick was clawed away by MacDonald.
However, the pressure finally told when Mulgrew’s cross found Hooper, who headed home from ten yards, despite suspicions off offside.
It was Celtic’s turn to feel aggrieved moments later when Zaliukas’s shot deflected off the arm of Ledley and Beattie drove the penalty down the centre and into the net.
Hearts: MacDonald, Grainger, Webster, Zaliukas, McGowan, Barr, Robinson, Black, Skacel, Driver, Elliott