Celtic paid a heavy price for their missed chances with Ki twice hitting the woodwork when it looked easier to score. The penalty that led to Hearts' winner in a frantic finish looked harsh, but Gary Hooper appeared to be offside for Celtic's leveller so both sides would appear to have grievances. But overall a terrific cup tie and now we will have an all-Edinburgh final between Hearts and Hibs at Hampden on May 19.
The final whistle blows and Hearts have a famous win. Celtic boss Neil Lennon storms onto the pitch to confront referee Euan Norris as his side's double dreams lie in tatters.
Ledley almost makes amends when he meets a Wanyama cross but MacDonald makes a brilliant reaction save.
90+1 GOAL! Beattie keeps his cool and drills the penalty home.
90 The referee is well placed and immediately points to the spot despite Ledley being so close to the ball when it was struck.
Hearts force a late corner and Grainger's kick falls to Zaliukas who rifles the ball goalwards and it is handled by Ledley.
Late blow for Hearts but a goal had been coming.
87 GOAL! Celtic's pressure pays off as Hooper - looking in an offside position - heads in from close range.
Ki goes down under a challenge from Grainger but the referee waves play on.
McDonald again comes to the rescue as he keeps out a looping header from Mulgrew and Stokes is unable to turn it goalwards before Hearts clear.
Free kick by Commons is heading for the top corner until MacDonald moves to his left to claw it away for a corner.
It's not been Ki's day - he could and should have had a hat-trick. How costly are his misses going to be?
82 Celtic's final change sees Dylan McGeouch replace Brown.
Wanyama is fouled and Ki meets Commons' free kick at the far post and heads against the post from close range.
Driver gets past Loovens down the left and delivers a deep cross which Forster gathers.
Grainger plays in the resulting free kick but Loovens heads clear.
78 Wilson is booked for bringing down Skacel.
77 Hearts make their final change with Denis Prychynenko replacing Elliott.
The ball breaks to Mulgrew on the edge of the box but his half volley goes wide.
Hooper almost rolls the ball into the run of Commons, but MacDonald comes off his line to gather at his feet.
74 Another Celtic change sees Victor Wanyama on for Lustig.
More Hearts pressure sees a cross-cum-shot from Elliott saved by Forster right under his crossbar.
Hearts are looking ever more comfortable in possession - bringing on Beattie has proved to be an inspired move.
Celtic surge downfield and Stokes twists and turns his way into a shooting position but his low shot from 15 yards is saved by MacDonald.
Driver powers his way to the by-line and aims a cross to Beattie, but Wilson gets in a vital covering header.
Stokes gets on the end of a Joe Ledley cross but heads over - with the offside flag raised anyway.
Lustig's cross to the far post almost falls to Stokes, but again Hearts get it away.
It's been much more even after the break in terms of possession and that has helped Hearts stay strong at the back.
Loovens escapes a booking for crashing into the back of Beattie as the frustration grows.
Stokes gets room inside the Celtic box but his shot from 14 yards is deflected out for a corner which is cleared.
64 Hearts make their first change with Suso replacing Black.
A strong run by Driver sees him lay the ball off to Beattie who shoots from the edge of the box and the bal fizzes just wide.
Groans from the Celtic fans as Brown's overhit pass goes out for throw - plenty of anxiety among the Celtic hordes.
Driver robs the ball off Lustig and powers into the area but Loovens gets in a vital block as the Hearts man tries to pull it back for the unmarked Beattie.
Great noise from the Hearts section - maybe we will get that all-Edinburgh final.
59 Stokes comes on for Samaras and Celtic do need a lift.
The goal has certainly knocked Celtic out of their stride as they have barely mustered an attack since going behind.
More activity on the Celtic bench so that change is coming.
Good workm by Beattie sees him hold the ball up on th edge of the Celtic and lay it off to that man Skacel who hits the ball with the outside of his foot but it spins wide.
After being so quiet in the opening 45 minutes, Skacel has suddenly come to life.
Skacel is brought down by Wilson and the free kick is played short to Skacel who lets fly from all of 30 yards with Forster parrying the bal away for a corner.
Anthony Stokes is warming up for Celtic and it seems a change is about to be made.
Samaras is perhaps lucky to escape a booking for a late challenge on McGowan.
Hooper wins a corner but Commons' kick is cleared with Hearts breaking well until Skacel is caught offside.
McGowan stays strong to win he ball off Samaras and you would imagine there will be plenty of defending for Hearts to do now.
Celtic force a corner as they look to hit back and it drops to Ki 15 yards out but he blazes his half-volley over from - another gilt-edged chance spurned.
48 GOAL! Beattie's contribution is immediate as he slides the ball through for Skacel who rounds Forster and drills the ball into the roof of the net.
Mulgrew plays in a low cross but Ryan McGowan is on hand to clear.
46 Hearts have made a change with ex-Celtic player Craig Beattie coming on for Scott Robinson as they get the second-half under way.
Celtic have had the bulk of possession and have struck the woodwork, but Hearts have defended well and have created decent chances of their own.
Huge let-off for Hearts, as we play one added minute, as Ki should have burst the net with that late chance.
Samaras plays the ball out to the impressive Lustig who stands the ball up to the far post where Ki has a free header but hits the post from six yards.
More patient build up from Celtic, but Hearts' tenacity and willingness to press forces them back.
Hearts, to their credit, have defended well but they need to try and find a way to hold the ball up more in the Celtic half otherwise the attacks will keep on coming.
Samaras heads down a Lustig cross and tries to find Hooper, but Webster is on hand to make the clearance.
The ball breaks to Commons on the edge of the box and he strikes a sweet half-volley, but MacDonald has no problem in getting behind it and making the save - first Celtic shot on target.
Hearts are having to get everyone behind the ball to try and stem the tide.
Celtic will really want to make this pressure count and go in at the break ahead.
Samaras holds the ball up on the edge of the box and plays a clever reverse pass to try and find Hooper's run but Zaliukas reads the situation and clears.
It's all Celtic at the moment, but Hearts are standing firm at the back.
Commons then meets a Samaras cross but heads wide.
Webster then underhits a backpass which lets Commons in but he over-runs the ball as he looks to round keeper MacDonald and it goes out for a goalkick - an escape for Hearts.
Celtic are enjoying their best spell and a dangerous cross from Samaras is hacked to safety by Zaliukas.
Lustig gets in a low cross that is missed by Grainger and the ball goes across the face of goal with no Celtic player able to get on the end of it.
One effort on target so far in the match which shows how closely fought it has been.
Samaras then gets free down the right, but stumbles as he is about to cross and the ball goes behind for a goalkick.
Driver looks to lead a Hearts counter as he skips past two challenges down the left, but just fails to keep the ball in.
The first time Hearts have looked a little flustered at the back, but tackles are now flying in.
Commons takes a Celtic corner which is punched clear by MacDonald at his near post. Commons is then tripped by Driver and it's a free kick just in from the corner flag. Commons takes it and Samaras flicks on but Hearts clear.
Skacel tries to slide the ball into Elliott inside the Celtic box, but it's overhit and goes out for a goalkick.
Mulgrew produces a superb cross which is mey by a glancing header from Hooper, but it is well wide.
Certainly Hearts are playing far better than their pre-match odds of 7/1 would suggest - they always seem to make life difficult for the Old Firm.
Andy Webster meets a Black free-kick and heads narrowly wide from 12 yards.
22 Black is also booked for his follow-up challenge on Lustig.
21 First booking of the day goes to Mulgrew for a late and high challenge on Black.
Robinson brings down Commons but another poor pass, this time from Brown, sees the ball go out for a Hearts throw.
Hooper and Ki look to play a one-two 40 yards from goal, but Black steps in to win the ball.
Celtic build patiently across the back four andn it's probably the first time they've had the time and space to do so.
Mulgrew floats a teasing ball to the far post, but it's too deep for both Samaras and Hooper.
The prospect of an all-Edinburgh final is great incentive for Hearts.
It's been a good, even contest so far with Hearts having the best chance with Forster coming to the rescue.
Samaras then earns a free-kick which is whipped in by Commons and met by Lustig but he heads over from eight yards out.
Lustig delivers a low cross into the Celtic box, but Marius Zaliukas is on hand to clear the ball.
Rudi Skacel gets a rare touch in the early stages and finds Grainger out wide. He gets in a cross which is touched away from Robinson by Mulgrew as Hearts press again.
Hearts' two best moments so far have come as a result of Celtic errors - Neil Lennon wil not be pleased about that.
Forster rolls the ball out to Charlie Mulgrew who is robbed by Black who powers into the box and tries to set up Elliott who is crowded out as he is about to shoot.
Black takes a free-kick for Hearts midway inside the Celtic half, but it's poor and Forster makes an easy catch.
Mikael Lustig tries an ambitious volley from the edge of the Hearts box, but Grainger gets in a block.
The game has started at a terrific pace with a deep cross by Commons calmly chested back to his keeper by Danny Grainger.
Hearts force another corner, taken by ian Black, but Samaras heads the ball clear.
Hearts keeper Jamie MacDonald has to deal with a strong backpass from Andrew Driver, but his control is good and he clears his lines.
Another Celtic corner, this time taken by Ki, which is flicked on by Glenn Loovens but again Hearts get it clear.
Celtic force a corner but Kris Commons' kick is cleared. Scott Brown wins it back and tries to find Gary Hooper in the box, but Barr gets in a tackle.
Big let-off for Celtic as Kelvin Wilson underhits a backpass and lets in Stepehen Elliott, but keeper Fraser Forster spreads his giant frame and blocks the ball at the expense of a corner, which Darren Barr heads over.
Celtic get us under way attacking the end housing the bulk of the Hearts fans.
The teams come out to a crescendo of noise and it looks like the flag sellers outside the stadium have enjoyed some brisk pre-match sales!
Charlie Goldie says: "Very much looking forward to this game. It looks like it will be close, but I think Celtic will win it 3-2. I do think Hearts will score one or two today, but Celtic should edge them out. Ian Black to open the scoring."
The line-ups are as follows - Celtic: Forster, Lustig, Kelvin Wilson, Loovens, Mulgrew, Commons, Brown, Ki, Ledley, Samaras, Hooper. Subs: Zaluska, Izaguirre, Stokes, McGeough, Wanyama. Hearts: MacDonald, McGowan, Zaliukas, Webster, Grainger, Barr, Driver, Black, Robinson, Skacel, Elliott. Subs: Ridgers, Beattie, Santana, Templeton, Prychynenko. Referee: Euan Norris
Celtic manager Neil Lennon makes one change to his side for their William Hill Scottish Cup semi-final against Hearts at Hampden. Sweden right-back Mikael Lustig comes in for Adam Matthews, who failed to make the bench. The Tynecastle side show two changes, defender Andy Webster and striker Stephen Elliott in for the injured Jamie Hamill and Gary Glen, who dropped out altogether, while former Celtic striker Craig Beattie starts on the bench.
"I think Hearts have a decent chance - if we can defend well then we have a good chance. Also we have Templeton and Beattie off the bench to cause some havoc late on! C'mon the Jambos!" said Fraser Smith.
Our colleagues at Sky Bet make Celtic 2/5 favourites, with the draw 100/30 and Hearts the rank outsiders at 7/1. Bhoys striker Gary Hooper is the 3/1 favourite to net the first goal, with Georgios Samaras 9/2.
Good afternoon and welcome to our coverage of today's Scottish Cup semi-final between newly-crowned SPL champions Celtic and Hearts at Hampden Park. If form is anything to go by, then Neil Lennon's side should remain on course for a domestic double. But Hearts can be a match for anyone in the SPL and will quietly fancy their chances of making it an all-Edinburgh final after Hibs beat Aberdeen to claim their place yesterday. Team news and line-ups to follow but, as always, we welcome your thoughts on the game so send them to email@example.com and I'll publish the best ones.