Hearts recorded only their second home league win this season, beating Celtic who had to play 35 minutes with 10 men.
The Edinburgh side had the better of the first half, hitting the bar before Ian Black's shot deflected in off Daniel Majstorovic on 29 minutes.
Celtic's Joe Ledley was sent off for a rash tackle on the Hearts scorer.
Soon after, David Templeton notched a fine second, finishing past Fraser Forster in Celtic's goal after a fantastic pass from Rudi Skacel.
The result caps an excellent four days for Jim Jefferies' team, coming off the back Sunday's derby win at the home of their city rivals Hibernian.
Neil Lennon's Celtic, meanwhile, looked a shadow of the team which scored nine without reply past Aberdeen in their last outing.
The frustration felt by Celtic fans leaving Tynecastle must have been compounded as news of league leaders Rangers' defeat at Ibrox filtered through.
Yet it was the visitors who looked brighter in the opening few minutes and Shaun Maloney had the first effort on goal after driving forward from midfield - although the shot trundled tamely into the arms of Marian Kello in the Hearts goal.
It was not long before Hearts began to assert themselves, however, with winger Templeton in particular causing problems down Celtic's left-hand side.
On 12 minutes the Celtic defence looked unsettled as Ismael Bouzid rose to meet a corner before the ball was scrambled away.
And moments later Hearts' Stephen Elliot headed off the bar with the goal gaping as he reacted instinctively to Templeton's cross-goal shot.
Shortly before the half-hour mark Hearts got the goal their play merited - albeit with the help of a heavy deflection off Celtic defender Majstorovic.
Skacel appeared to have passed up the chance to deliver a free-kick into the box, instead rolling short it to Black.
The midfielder took a few paces before unleashing a shot from 30 yards which flew over Forster after spinning off his Swedish teammate.
After posting a new record Scottish Premier League scoreline on Saturday, Celtic were finding Hearts' defences more difficult to breach, with the final ball letting them down.
When Gary Hooper did manage to get in behind the home side's back four he was booked for diving as he went to ground when Kello raced off his line.
Hooper then had a glorious chance to level the score minutes before the break.
But after good work from Anthony Stokes, the Englishman was unable to direct the ball past Kello, who saved well from just eight yards.
Instead, it was Hearts who nearly doubled their lead before the interval with Skacel stinging Forster's palms.
The second period started scrappily but exploded to life when Celtic midfielder Ledley was shown a straight red card for a two-footed lunge on Black.
While Celtic boss Neil Lennon decided how to reorganise his 10 men, Maloney lost the ball in midfield, Skacel collected it and raced down the left channel.
The Czech then slid an accurate pass across the box for Templeton who fired the ball under Forster from 10 yards.
Celtic had a good claim for a penalty turned down when Ryan Stevenson handled in the box, and Celtic boss Lennon was sent to the stand for his angry protestations over referee Craig Thomson's decision.
But Celtic were unable to pick themselves up off the canvas and Hearts eased to what turned out to be a comfortable victory.
Hearts2 - 0Celtic
Live text and stats
Wednesday, 10 November 2010
21 Ismael Bouzid
04 Jonsson yellow card
08 Black yellow card (Stevenson 64)
12 Templeton (Suso Santana 87)
19 Skacel (Thomson 78)
07 Suso Santana,
05 Majstorovic yellow card
06 Hooiveld yellow card
12 Wilson (Cha Du-Ri 62)
16 Ledley red card
18 Ki Sung-Yeung yellow card
09 Samaras yellow card
10 Stokes (McGinn 62)
88 Hooper yellow card
11 Cha Du-Ri ,
Ref: ThomsonAtt: 15,632
Attempts on target
Attempts off target
90:00+3:07 The referee blows his whistle to end the game.
90:00+2:28 The referee blows for offside against Stephen Elliott. Indirect free kick taken by Fraser Forster.
90:00+1:55 Georgios Samaras concedes a free kick for a foul on Marius Zaliukas. Direct free kick taken by Marian Kello.
86:26 Jos Hooiveld restarts play with the free kick.
86:26 Substitution Suso Santana is brought on as a substitute for David Templeton.
86:26 Free kick awarded for a foul by Kevin Kyle on Jos Hooiveld.
85:29 Corner taken right-footed by Craig Thomson from the left by-line, Georgios Samaras makes a clearance.
81:18 Unfair challenge on Shaun Maloney by Craig Thomson results in a free kick. Daniel Majstorovic takes the free kick.
80:43 Ismael Bouzid takes the free kick.
80:43 Booking The referee shows Jos Hooiveld a yellow card for unsporting behaviour.
80:27 Jos Hooiveld challenges David Templeton unfairly and gives away a free kick.
77:33 Substitution Craig Thomson is brought on as a substitute for Rudolf Skacel.
75:37 Free kick awarded for an unfair challenge on Ismael Bouzid by Gary Hooper. Ismael Bouzid takes the direct free kick.
73:22 Ismael Bouzid restarts play with the free kick.
73:22 Booking Georgios Samaras goes into the book for unsporting behaviour.
73:08 Georgios Samaras concedes a free kick for a foul on Marius Zaliukas.
72:21 Ryan Stevenson takes a shot. Save made by Fraser Forster.
69:58 Rudolf Skacel challenges Niall McGinn unfairly and gives away a free kick. Daniel Majstorovic takes the free kick.
67:24 The assistant referee flags for offside against Gary Hooper. Marian Kello takes the free kick.
64:28 Foul by Gary Hooper on Ismael Bouzid, free kick awarded. Direct free kick taken by Ismael Bouzid.
63:45 Unfair challenge on Georgios Samaras by Eggert Jonsson results in a free kick. Sung-Yong Ki restarts play with the free kick.
63:04 Substitution Ryan Stevenson comes on in place of Ian Black.
62:42 Effort from outside the penalty box by Shaun Maloney goes wide left of the goal.
62:15 Kevin Kyle is caught offside. Daniel Majstorovic takes the free kick.
61:02 Substitution Anthony Stokes goes off and Niall McGinn comes on.
61:02 Substitution Du-Ri Cha is brought on as a substitute for Mark Wilson.
59:56 Eggert Jonsson fouled by Georgios Samaras, the ref awards a free kick. Ismael Bouzid takes the free kick.
58:58 Sung-Yong Ki takes a outswinging corner.
57:45 The assist for the goal came from Rudolf Skacel.
57:45 GOAL - David Templeton:Hearts 2 - 0 Celtic Goal scored by David Templeton from inside the six-yard box to the bottom left corner of the goal. Hearts 2-0 Celtic.
57:38 The ball is swung over by Rudolf Skacel,
55:55 Free kick taken by Rudolf Skacel.
55:55 Sent off The referee shows Joe Ledley a red card.
55:36 Ian Black fouled by Joe Ledley, the ref awards a free kick.
54:44 Emilio Izaguirre takes the free kick.
54:44 Booking Eggert Jonsson goes into the book for unsporting behaviour.
54:35 Foul by Eggert Jonsson on Anthony Stokes, free kick awarded.
53:12 Stephen Elliott is caught offside. Free kick taken by Fraser Forster.
51:15 The assistant referee flags for offside against Ian Black. Fraser Forster takes the free kick.
47:54 The referee blows for offside against Gary Hooper. Marian Kello restarts play with the free kick.
46:26 Corner taken by Emilio Izaguirre from the left by-line, Headed effort from inside the box by Anthony Stokes misses to the
right of the target.
45:38 Free kick awarded for a foul by Eggert Jonsson on Emilio Izaguirre. Free kick taken by Sung-Yong Ki.
45:01 The referee starts the second half.
45:00+1:11 The referee blows for half time.
45:00+0:35 Georgios Samaras gives away a free kick for an unfair challenge on Kevin Kyle. Rudolf Skacel restarts play with the free kick.
43:26 Unfair challenge on Joe Ledley by Stephen Elliott results in a free kick. Sung-Yong Ki produces a shot on goal direct from
the free kick, comfortable save by Marian Kello.
42:30 Stephen Elliott takes a shot. Save by Fraser Forster.
41:12 Inswinging corner taken left-footed by Rudolf Skacel, Header from close range by Marius Zaliukas clears the bar.
40:24 The assistant referee flags for offside against Gary Hooper. Indirect free kick taken by Marian Kello.
39:22 Corner from the right by-line taken by Sung-Yong Ki, clearance made by Kevin Kyle.
37:32 Adrian Mrowiec challenges Shaun Maloney unfairly and gives away a free kick. Shot comes in from Sung-Yong Ki from the free
kick, blocked by Ismael Bouzid.
36:30 Shot comes in from Rudolf Skacel from the free kick, save made by Marian Kello.
36:30 Booking The referee shows Sung-Yong Ki a yellow card.
36:17 Free kick awarded for a foul by Sung-Yong Ki on Ian Black.
35:49 Kevin Kyle challenges Emilio Izaguirre unfairly and gives away a free kick. Free kick taken by Emilio Izaguirre.
34:44 Joe Ledley takes a shot from 35 yards and went wide right of the net.
33:40 Booking Caution for Gary Hooper.
32:11 Sung-Yong Ki takes the direct free kick.
32:11 Booking Ian Black receives a caution.
31:57 Foul by Ian Black on Georgios Samaras, free kick awarded.
30:29 Foul by Eggert Jonsson on Georgios Samaras, free kick awarded. Free kick taken by Georgios Samaras.
28:01 The assist for the goal came from Rudolf Skacel.
28:01 GOAL - Ian Black:Hearts 1 - 0 Celtic Ian Black gets on the score sheet with a goal from outside the penalty box high into the middle of the goal. Hearts 1-0 Celtic.
27:01 Foul by Shaun Maloney on David Templeton, free kick awarded. Direct free kick taken by Rudolf Skacel.
26:32 Kevin Kyle challenges Daniel Majstorovic unfairly and gives away a free kick. Daniel Majstorovic restarts play with the free
24:59 Stephen Elliott has a headed effort at goal from deep inside the area missing to the right of the goal.
24:17 Emilio Izaguirre takes the outswinging corner, clearance made by Ismael Bouzid.
23:18 Foul by Shaun Maloney on David Templeton, free kick awarded. Ian Black takes the direct free kick.
21:48 Georgios Samaras challenges Marius Zaliukas unfairly and gives away a free kick. Marian Kello takes the free kick.
21:19 Unfair challenge on Shaun Maloney by Eggert Jonsson results in a free kick. Sung-Yong Ki takes the free kick.
20:04 Unfair challenge on David Templeton by Emilio Izaguirre results in a free kick. Free kick taken by Rudolf Skacel.
17:48 Free kick awarded for a foul by Jos Hooiveld on Kevin Kyle. Rudolf Skacel has a direct shot on goal from the free kick.
15:27 Free kick awarded for a foul by Ian Black on Shaun Maloney. Sung-Yong Ki takes the free kick.
14:25 The free kick is delivered left-footed by Rudolf Skacel from left channel, Daniel Majstorovic gets a block in.
14:25 Booking Daniel Majstorovic is booked.
13:39 Free kick awarded for an unfair challenge on Ruben Palazuelos by Anthony Stokes.
12:23 Corner taken left-footed by Rudolf Skacel, Daniel Majstorovic makes a clearance.
10:41 Corner taken by Rudolf Skacel from the right by-line, Stephen Elliott takes a shot. Blocked by Shaun Maloney.
9:03 The assistant referee signals for offside against Kevin Kyle. Emilio Izaguirre takes the indirect free kick.
8:36 Free kick awarded for a foul by Georgios Samaras on Ismael Bouzid. Free kick taken by Marian Kello.
6:49 Shaun Maloney takes a shot. Save by Marian Kello.
6:17 Stephen Elliott concedes a free kick for a foul on Jos Hooiveld. Jos Hooiveld takes the direct free kick.
3:34 Corner taken by Rudolf Skacel played to the near post, Kevin Kyle gives away a free kick for an unfair challenge on Jos Hooiveld.
Fraser Forster restarts play with the free kick.
3:00 Kevin Kyle challenges Daniel Majstorovic unfairly and gives away a free kick. Free kick taken by Fraser Forster.
2:24 Sung-Yong Ki challenges Ian Black unfairly and gives away a free kick. Direct free kick taken by Rudolf Skacel.
1:41 Shaun Maloney fouled by Ian Black, the ref awards a free kick. Free kick taken by Shaun Maloney.
0:00 The referee gets the game underway.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.