Lennon's fury as late penalty knocks Celtic out of Scottish Cup
Celtic 1 Hearts 2: Hearts will play Hibernian in the final of the Scottish Cup for the first time since 1896 after substitute Craig Beattie's last-minute penalty earned a shock win over his former side Celtic at Hampden.
One of the most remarkable afternoons in the history of the competition began in earnest a minute after the break when Rudi Skacel raced on to a pass from Beattie, who had replaced Scott Robinson at the interval, to fire Hearts into the lead.
Four minutes from time Celtic striker Gary Hooper headed in a Charlie Mulgrew cross and it looked like the game was heading towards extra-time.
However, with seconds of normal time remaining referee Euan Norris pointed to the spot when a shot from Tynecastle skipper Marius Zaliukas hit the arm of Hoops midfielder Joe Ledley and Beattie scored from the spot to send the travelling Jambos fans into ecstasy.
Hoops boss Neil Lennon was clearly unhappy at the penalty decision but will perhaps be more annoyed that his Clydesdale Bank Premier League champions will miss out on the chance of a double.
Edinburgh football fans, though, will look forward to a day out in Glasgow on May 19.
Lennon made one change to his side, bringing in Sweden right-back Mikael Lustig for Adam Matthews, who had a mouth infection.
The Tynecastle side showed two changes, defender Andy Webster and striker Stephen Elliott in for the injured Jamie Hamill and Gary Glen, who dropped out altogether.
The Tynecastle side had a great chance after just 30 seconds when Celtic defender Kelvin Wilson underhit a back-pass which let Elliott in, but his shot from a tight angle was blocked by Hoops goalkeeper Fraser Forster for a corner.
Hearts had six players in their starting line-up who were one booking away from missing the final but showed no signs of holding back and there were some hefty challenges in the early stages.
There was another moment of slackness from the Celtic defence in the ninth minute when defender Mulgrew was robbed by Jambos midfielder Ian Black, who raced into the box but his pass failed to find Elliott.
Lustig headed a Kris Commons free-kick over the bar from six yards out five minutes later, before a fine Mulgrew cross into the box evaded Georgios Samaras, but the game was taking its time to come to the boil.
In the 21st minute Black was lucky to escape with only a booking after a challenge on Celtic midfielder Joe Ledley, in an incident which saw Mulgrew also booked. Black was also penalised for a handball but Norris resisted the temptation to produce a second yellow card.
Hooper headed wide from a Mulgrew cross, and Webster caused panic when he was short with a return pass to Hearts goalkeeper Jamie MacDonald which allowed Commons in, but the Scotland midfielder's touch was too heavy as he was forced to go around MacDonald and the opportunity was lost.
The best chance of the first half came for the dominant Hoops in the final minute but Celtic midfielder Ki Sung-yueng hit the post with a header from Lustig's cross when it looked as if he must score.
Beattie replaced Robinson for the start of the second half and the move paid off after just a minute when the big striker helped Skacel fire Hearts ahead.
After taking a pass from Black 30 yards out, Beattie quickly released Skacel into the box and he rounded Forster before slamming the ball into the roof of the net.
Stunned Celtic immediately stepped up the tempo and moments later Ki fired over from the edge of the box with a drive which signalled a period of intense Hoops pressure.
However, Hearts were a threat on the counter. In the 54th minute Skacel fired in a drive from 30 yards which Forster was glad to push round the post for a corner, and moments later the Czech tried his luck from the edge of the box but this time his effort trundled wide.
Anthony Stokes replaced the ineffective Samaras on the hour mark as Lennon tried plan B but in another Hearts counter-attack Beattie fired wide from 20 yards.
Ki hit the post again with a header from Commons' free-kick in the 81st minute, before skipper Scott Brown made way for Dylan McGeouch.
MacDonald produced a fingertip save to stop Commons' free-kick going under the bar before making a great save from Mulgrew's header with the rebound coming off Stokes' thigh and away from danger.
But in the 86th minute Celtic eventually got through when Hooper headed in Mulgrew's cross from four yards out and extra-time looked likely.
However, Beattie became the Hearts hero with his spot-kick, although there was still time for Celtic to be denied a penalty when the ball appeared to come off the arm of Webster as Hearts defended for their lives.