Two injury-time goals handed Celtic a last-gasp win in an uninspiring encounter with St Johnstone in Glasgow.
St Johnstone's Collin Samuel almost profited from a Daniel Majstorovic slip-up in the opening seconds.
A series of Paddy McCourt runs failed to find an opening past a resilient, if somewhat unthreatening St Johnstone.
In the dying minutes, Cha Du-Ri drifted inside and blasted past Peter Enckelman, then Ki Sung-Yeung secured the points with a fine strike.
The result means Celtic have ended their poor run of form at home and keeps pressure up on Rangers at the top of the Scottish Premier League table.
Scott Brown started for the first time since October along with Georgios Samaras and Paddy McCourt as Joe Ledley, James Forrest and Gary Hooper were all missing.
St Johnstone were without the suspended duo Jody Morris and Jamie Adams and made three changes, with Alan Maybury, Collin Samuel and Cleveland Taylor coming in.
A mistake by Celtic defender Majstorovic almost opened up a chance for Samuel in the opening seconds of the match, but the Trinidadian's first touch was poor and Forster resumed control.
Georgios Samaras nipped down the wing in the 10th minute, firing the ball across, but Saints keeper Enckelman gathered comfortably.
Niall McGinn flighted in a ball that evaded most of the Celtic front line, but the bouncing ball reached McCourt who nodded for goal, only to send his effort wide of the mark.
Moments later, Murphy turned on the ball 25 yards out and fired for goal, but Enckelman dived to his left and made the save.
As the half hour mark approached, Parkin blasted in a shot from distance that sailed wide, then McCourt threatened at the other end with a shot of his own.
Celtic enjoyed a brief spell of pressure towards the end of the first half, but failed to create the chances necessary to break the stalemate.
After the interval, the hosts looked to have more appetite about their play and McCourt instantly went on one of his trademark runs, but sent the final ball wide of the target.
Murphy warmed the hands of Enckelman with a powerful drive from 18 yards out, but the Finn was up to the task.
Samaras was felled on the edge of the Saints penalty area by Alan Maybury as the hour mark approached, and earned himself a yellow card for his trouble, but Ki failed to make anything of the resulting free-kick.
A cross from Anthony Stokes was cleared by Maybury as the hosts started to desperately search for an unlikely opener.
A McCourt run led to a commotion in the St Johnstone penalty area, but the danger was cleared and the resulting corner was disappointingly flat.
In the final 10 minutes of the match, Murphy appeared to be denied a penalty before firing in a shot towards the St Johnstone goal, but referee Calum Murray was having none of it.
Ki fired a shot wide of the St Johnstone goal, then McGinn went down under a challenge in the visitors' penalty area as the match drew to a close, but, again, Murray waved it away.
Substitute Olivier Kapo had the home fans on their feet in the dying minutes when he kneed the ball goal-bound, only to strike the St Johnstone crossbar.
In the first minute of stoppage time, Cha cut inside after powering down the right wing and blasted past Enckelman with a quality finish to snatch all three points for the hosts.
The victory was complete when Ki finished off a fine solo run with a powerful drive, much to the relief of the home fans who had remained for the three minutes of added on time.
Live text and stats
Sunday, 26 December 2010
Cha Du-Ri 90+1
Ki Sung-Yeung 90+3
05 Majstorovic yellow card
11 Cha Du-Ri yellow card
18 Ki Sung-Yeung
20 McCourt (Baram Kayal 90+2)
09 Samaras (Stokes 60)
27 Murphy (Kapo 77)
33 Baram Kayal,
19 Maybury yellow card
10 Craig (Myrie-Williams 90+3)
11 Taylor (May 73)
09 Parkin yellow card
21 Samuel (MacDonald 81)
Ref: MurrayAtt: 41,522
Attempts on target
Attempts off target
90:00+3:50 The final whistle goes and the game is over.
90:00+2:41 Assist by Olivier Kapo.
90:00+2:41 GOAL - Sung-Yeung Ki:Celtic 2 - 0 St Johnstone Sung-Yeung Ki finds the back of the net with a goal from just outside the penalty box to the top left corner of the goal.
Celtic 2-0 St Johnstone.
90:00+1:26 Substitution Patrick McCourt leaves the field to be replaced by Beram Kayal.
90:00+1:26 Booking The referee cautions Du-Ri Cha for unsporting behaviour.
90:00+0:32 GOAL - Du-Ri Cha:Celtic 1 - 0 St Johnstone Du-Ri Cha grabs a goal from long distance to the top left corner of the goal. Celtic 1-0 St Johnstone.
90:00+0:08 Michael Duberry challenges Anthony Stokes unfairly and gives away a free kick. Free kick taken by Sung-Yeung Ki.
88:26 Foul by Sam Parkin on Patrick McCourt, free kick awarded. Sung-Yeung Ki has a direct shot on goal from the free kick.
88:26 Booking Daniel Majstorovic booked.
87:29 Booking Sam Parkin receives a caution.
87:00 Olivier Kapo takes a shot.
86:25 Sam Parkin concedes a free kick for a foul on Scott Brown. Direct free kick taken by Scott Brown.
84:17 Unfair challenge on David MacKay by Patrick McCourt results in a free kick. David MacKay takes the free kick.
83:09 Shot from just outside the box by Sung-Yeung Ki misses to the right of the goal.
81:32 Unfair challenge on David MacKay by Olivier Kapo results in a free kick. Michael Duberry takes the free kick.
80:27 Substitution Peter MacDonald is brought on as a substitute for Collin Samuel.
78:12 Steve May has a shot on goal from outside the area which misses left.
76:01 Substitution Olivier Kapo comes on in place of Daryl Murphy.
72:11 Substitution Steve May replaces Cleveland Taylor.
71:30 The ball is delivered by Patrick McCourt, clearance by Michael Duberry. Sung-Yeung Ki takes a outswinging corner from the
right by-line to the near post, clearance made by Daniel Grainger.
71:10 Emilio Izaguirre sends in a cross, clearance by Michael Duberry.
69:16 Michael Duberry fouled by Daryl Murphy, the ref awards a free kick. Peter Enckelman takes the direct free kick.
68:52 Chris Millar takes a shot. Save made by Fraser Forster.
67:00 Du-Ri Cha crosses the ball, Michael Duberry manages to make a clearance.
65:30 Anthony Stokes sends in a cross, clearance by Alan Maybury.
64:52 Scott Brown takes a shot. Peter Enckelman makes a save.
63:23 Unfair challenge on Emilio Izaguirre by Michael Duberry results in a free kick. Free kick taken by Daniel Majstorovic. Sung-Yeung
Ki takes a inswinging corner from the right by-line to the near post, Michael Duberry makes a clearance.
62:34 Emilio Izaguirre produces a cross.
61:33 Free kick awarded for a foul by Emilio Izaguirre on Cleveland Taylor. Direct free kick taken by Daniel Grainger.
59:43 Substitution Georgios Samaras goes off and Anthony Stokes comes on.
58:47 Foul by Emilio Izaguirre on Cleveland Taylor, free kick awarded. Direct free kick taken by Daniel Grainger.
58:21 Cleveland Taylor concedes a free kick for a foul on Du-Ri Cha. Daniel Majstorovic takes the free kick.
56:38 Free kick awarded for an unfair challenge on Niall McGinn by Alan Maybury. Strike comes in from Sung-Yeung Ki from the free
kick, blocked by David MacKay.
56:38 Booking Alan Maybury goes into the referee's book for unsporting behaviour.
54:45 Unfair challenge on Michael Duberry by Georgios Samaras results in a free kick. David MacKay takes the direct free kick.
53:55 Free kick awarded for a foul by Georgios Samaras on Steven Anderson. Peter Enckelman takes the free kick.
53:46 Georgios Samaras produces a cross, Daniel Grainger manages to make a clearance.
50:30 Inswinging corner taken right-footed by Sung-Yeung Ki played to the near post, Daniel Grainger manages to make a clearance.
47:02 Daryl Murphy produces a drilled right-footed shot from 18 yards. Peter Enckelman makes a save.
45:28 Shot by Patrick McCourt from deep inside the penalty area misses wide to the left of the target.
45:01 The referee blows his whistle to start the second half.
45:00+1:43 The whistle is blown to end the first half.
44:43 The ball is sent over by Patrick McCourt, clearance made by David MacKay.
43:50 Scott Brown gives away a free kick for an unfair challenge on Daniel Grainger. Peter Enckelman takes the free kick.
42:38 Daryl Murphy concedes a free kick for a foul on Steven Anderson. Daniel Grainger takes the free kick.
41:55 Corner from the left by-line taken by Sung-Yeung Ki, save by Peter Enckelman.
41:30 Corner taken right-footed by Sung-Yeung Ki to the near post, clearance made by Michael Duberry.
40:54 Corner taken right-footed by Sung-Yeung Ki from the left by-line, Daniel Grainger makes a clearance.
40:49 Scott Brown produces a cross, Sam Parkin makes a clearance.
36:54 Inswinging corner taken by Sung-Yeung Ki, save by Peter Enckelman.
36:22 Chris Millar concedes a free kick for a foul on Georgios Samaras. Georgios Samaras restarts play with the free kick.
36:06 Free kick awarded for an unfair challenge on Sung-Yeung Ki by Liam Craig. Sung-Yeung Ki restarts play with the free kick.
33:43 Free kick awarded for a foul by Daryl Murphy on Michael Duberry. Michael Duberry takes the direct free kick.
33:06 Daryl Murphy has an effort at goal from 20 yards. Save made by Peter Enckelman.
29:57 Shot from a long way out by Sam Parkin goes wide of the left-hand upright.
27:44 Corner taken by Sung-Yeung Ki from the left by-line to the near post, clearance made by Michael Duberry.
27:11 The ball is delivered by Patrick McCourt, David MacKay manages to make a clearance. Inswinging corner taken from the left
by-line by Sung-Yeung Ki.
25:56 A cross is delivered by Anthony Stokes, save by Peter Enckelman.
24:46 Daryl Murphy takes a shot from 20 yards. Save made by Peter Enckelman.
23:48 The ball is sent over by Georgios Samaras, David MacKay manages to make a clearance. Outswinging corner taken from the right
by-line by Sung-Yeung Ki, clearance by Steven Anderson.
23:26 Patrick McCourt crosses the ball, Daniel Grainger makes a clearance.
18:53 Free kick awarded for a foul by Georgios Samaras on Michael Duberry. Michael Duberry takes the free kick.
18:07 The ball is delivered by Niall McGinn, Close range headed effort by Patrick McCourt clears the crossbar.
16:45 Thomas Rogne challenges Sam Parkin unfairly and gives away a free kick. Daniel Grainger takes the free kick.
16:02 Sung-Yeung Ki crosses the ball, clearance made by Michael Duberry. The referee blows for offside against Georgios Samaras.
Peter Enckelman takes the free kick.
13:37 The assistant referee signals for offside against Sam Parkin. Free kick taken by Fraser Forster.
10:02 The ball is crossed by Georgios Samaras, save by Peter Enckelman.
9:17 The ball is crossed by Patrick McCourt, clearance by Steven Anderson.
7:34 Scott Brown crosses the ball, Peter Enckelman makes a save.
5:58 A cross is delivered by Daryl Murphy, clearance by Liam Craig.
5:23 Unfair challenge on Daniel Majstorovic by Sam Parkin results in a free kick. Direct free kick taken by Daniel Majstorovic.
3:36 The ball is crossed by Niall McGinn, Steven Anderson makes a clearance.
2:34 The ball is swung over by Georgios Samaras, clearance made by David MacKay.
0:00 The referee gets the match started.
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.