Inverness Caledonian Thistle derailed Celtic's title challenge with a well-deserved victory in the Highlands.
Charlie Mulgrew nudged in Adam Rooney's seventh-minute flick to give Caley the lead, but Kris Commons's 18-yard strike two minutes later restored the balance.
Grant Munro's screamer restored Caley's lead on 53 minutes, then Shane Sutherland volleyed home for the third.
Commons converted for Celtic from the spot when Shaun Maloney was felled in stoppage time, but it came too late.
The win means Celtic are now one point behind leaders Rangers with three matches remaining, handing the advantage to the Ibrox side for the title run-in.
Celtic manager Neil Lennon made just the one change to his side as Maloney came in for James Forrest, who started on the bench.
His opposite number Terry Butcher also made one change, with defender Chris Innes coming in for Alex MacDonald.
A flurry of corners for Celtic put some early pressure on the hosts, but the opening goal came from a Sutherland long ball against the run of play in the seventh minute, which Rooney flicked past goalkeeper Fraser Forster from six yards out via a delfection off Charlie Mulgrew.
However, the lead was short lived when Commons edged forward to the Inverness 18 yard line two minutes later and blasted a sensational strike past keeper Ryan Esson to restore parity.
Player of the Season Emilio Izaguirre delivered a long ball across for Anthony Stokes, but the Irishman's shot lacked power and failed to test Esson.
A Commons free-kick from the edge of the Inverness penalty area struck the wall, then Aaron Doran's dead ball at the other end failed to find a blue-and-red jersey.
As the half-hour mark approached, Gary Hooper sent a tempting ball across the Inverness goal, but Innes was on hand to clear it for a Celtic corner that ultimately came to nothing.
Moments later, Hooper angled another tempting shot towards the Inverness goal that inched past Esson's left-hand post.
A double-attempt at goal by Stokes five minutes from the interval was thwarted by Grant Munro, then a curling Maloney free-kick was tipped over the bar by Esson on the stroke of half-time.
Sutherland almost leapt to meet a Doran cross shortly after the restart as the hosts went in search of the lead, then a Commons cross at the other end failed to find a Celtic jersey.
With 53 minutes played, Munro controlled a Doran corner on the edge of the Celtic penalty area and planted a delightful shot past Forster to put Inverness ahead.
Shortly after the hour mark, Nick Ross latched on to a poor Daniel Majstorovic clearance to flick on for Sutherland to blast in from 10 yards out to make the score 3-1.
Beram Kayal broke free in the Inverness penalty area and struck for goal, but Esson was equal to the task.
Celtic struggled for large spells of the second half with Inverness piling on the pressure in search of more goals, and Munro should have done better with an effort from 18 yards that went wildly astray.
The match could have been over as a contest in the 75th minute when Rooney benefited from a Mulgrew slip-up and went one-on-one with Forster, but struck the ball straight at the big Celtic keeper's legs.
The visitors made several changes - one enforced when Kayal was stretchered off with a wrist injury - but failed to break down their hosts' resolve, with Majstorovic's late header flashing across the face of goal as full-time approached.
With four minutes of stoppage time added, Maloney was felled in the Inverness penalty area by Ross Tokely and Commons converted to hand Celtic a late lifeline.
As the seconds ticked away, referee Stevie O'Reilly waved away Celtic's claims for a second penalty after Paddy McCourt went to ground, and any hopes of the visitors securing an unlikely equaliser vanished.
Live text and stats
Wednesday, 4 May 2011
Mulgrew (og) 7
Commons (pen) 90+3
03 Tokely yellow card
10 Rooney (Morrison 90+2)
20 Sutherland yellow card (Odhiambo 82)
05 Majstorovic yellow card
08 Brown yellow card
33 Baram Kayal (Ki Sung-Yeung 71)
10 Stokes (Murphy 58)
88 Hooper (McCourt 66)
18 Ki Sung-Yeung,
Ref: O'ReillyAtt: 6,702
Attempts on target
Attempts off target
90:00+5:14 The referee brings the game to a close.
90:00+3:19 Eric Odhiambo concedes a free kick for a foul on Charlie Mulgrew. Free kick taken by Fraser Forster.
90:00+2:38 GOAL - Kris Commons:Inverness CT 3 - 2 Celtic Penalty taken left-footed by Kris Commons and scored. Inverness CT 3-2 Celtic.
90:00+2:02 Booking Ross Tokely receives a yellow card for unsporting behaviour.
90:00+1:54 Penalty awarded for an unfair challenge on Shaun Maloney by Ross Tokely.
90:00+1:50 Substitution Gavin Morrison joins the action as a substitute, replacing Adam Rooney.
90:00+0:33 Emilio Izaguirre decides to take the corner short, Effort on goal by Scott Brown from inside the penalty box misses to the
right of the target.
87:42 Daniel Majstorovic produces a headed effort from deep inside the six-yard box which goes wide of the right-hand upright.
87:08 Corner taken by Kris Commons, Ross Tokely makes a clearance.
84:16 Inswinging corner taken by Sung-Yeung Ki, clearance made by Kenny Gillet.
82:27 Emilio Izaguirre fouled by Eric Odhiambo, the ref awards a free kick. Charlie Mulgrew restarts play with the free kick.
81:57 Substitution Eric Odhiambo on for Shane Sutherland.
81:26 Booking Shane Sutherland is shown a yellow card.
77:30 Free kick awarded for an unfair challenge on Mark Wilson by Shane Sutherland. Kris Commons crosses the ball from the free
kick left-footed from right wing.
74:44 Adam Rooney takes a shot. Save by Fraser Forster.
73:24 Inswinging corner taken by Patrick McCourt from the left by-line.
72:02 Corner taken by Aaron Doran from the right by-line, Effort on goal by Grant Munro from just inside the area clears the bar.
71:35 Adam Rooney fouled by Daniel Majstorovic, the ref awards a free kick. Shane Sutherland restarts play with the free kick.
71:18 Booking The referee shows Daniel Majstorovic a yellow card for unsporting behaviour.
Correction - 70:54 Substitution Sung-Yeung Ki comes on in place of Beram Kayal.
70:54 Substitution Sung-Yeung Ki joins the action as a substitute, replacing Beram Kayal.
70:12 Scott Brown gives away a free kick for an unfair challenge on Shane Sutherland. Aaron Doran delivers the ball, Headed effort
on goal by Ross Tokely from just inside the box goes harmlessly over the target.
69:46 Booking The referee books Scott Brown for unsporting behaviour.
68:48 Unfair challenge on Kenny Gillet by Kris Commons results in a free kick. Ryan Esson takes the direct free kick.
67:31 Corner taken left-footed by Kris Commons from the right by-line, Grant Munro manages to make a clearance.
67:10 Beram Kayal takes a shot. Save made by Ryan Esson.
65:52 Substitution Patrick McCourt joins the action as a substitute, replacing Gary Hooper.
64:53 Kris Commons takes a shot. Save made by Ryan Esson.
64:20 Foul by Kenny Gillet on Shaun Maloney, free kick awarded. Mark Wilson restarts play with the free kick.
63:36 The assistant referee flags for offside against Adam Rooney. Fraser Forster takes the free kick.
62:16 Effort from just outside the area by Kris Commons goes over the target.
61:13 GOAL - Shane Sutherland:Inverness CT 3 - 1 Celtic Shane Sutherland finds the net with a goal from the edge of the penalty box to the bottom left corner of the goal. Inverness
CT 3-1 Celtic.
60:23 Daniel Majstorovic gives away a free kick for an unfair challenge on Nick Ross. Aaron Doran crosses the ball from the free
kick right-footed from right channel, clearance by Daniel Majstorovic.
59:00 Ross Tokely challenges Kris Commons unfairly and gives away a free kick. Mark Wilson restarts play with the free kick.
57:55 Substitution Daryl Murphy comes on in place of Anthony Stokes.
56:24 Corner from the left by-line taken by Shane Sutherland, Effort from deep inside the area by Grant Munro misses to the right
of the goal.
54:27 Free kick awarded for an unfair challenge on Kris Commons by Ross Tokely. Kris Commons restarts play with the free kick.
52:36 The assist for the goal came from Aaron Doran.
52:36 GOAL - Grant Munro:Inverness CT 2 - 1 Celtic Goal scored by Grant Munro from inside the box to the top right corner of the goal. Inverness CT 2-1 Celtic.
52:01 Outswinging corner taken from the right by-line by Aaron Doran,
49:33 The official flags Gary Hooper offside. Free kick taken by Ryan Esson.
47:08 Outswinging corner taken left-footed by Shane Sutherland from the left by-line, Daniel Majstorovic makes a clearance.
46:29 Free kick awarded for an unfair challenge on Kris Commons by Kenny Gillet. Direct free kick taken by Mark Wilson.
45:01 The match restarts for the second half.
45:00+1:11 The whistle is blown to end the first half.
45:00+0:27 Shot from outside the penalty box by Beram Kayal goes wide right of the goal.
45:00+0:02 Outswinging corner taken from the left by-line by Kris Commons, save by Ryan Esson.
43:47 Ross Tokely concedes a free kick for a foul on Shaun Maloney. Shaun Maloney produces a strike on goal direct from the free
kick, Ryan Esson makes a save.
42:41 Nick Ross produces a right-footed shot from just outside the penalty area that goes harmlessly over the target.
38:51 Free kick awarded for a foul by Daniel Majstorovic on Adam Rooney. Grant Munro takes the direct free kick.
36:43 Chris Innes challenges Anthony Stokes unfairly and gives away a free kick. Free kick taken by Emilio Izaguirre.
36:03 Outswinging corner taken from the right by-line by Aaron Doran, clearance by Gary Hooper.
35:36 Foul by Kris Commons on Nick Ross, free kick awarded. Ryan Esson takes the direct free kick.
33:30 Adam Rooney gives away a free kick for an unfair challenge on Charlie Mulgrew. Charlie Mulgrew takes the direct free kick.
31:44 Shot from just outside the box by Kris Commons misses to the right of the goal.
28:49 Corner taken left-footed by Kris Commons, Daniel Majstorovic has a headed effort from close in and clears the bar.
27:09 Free kick awarded for an unfair challenge on Daniel Majstorovic by Adam Rooney. Direct free kick taken by Charlie Mulgrew.
24:08 Kenny Gillet challenges Mark Wilson unfairly and gives away a free kick. Free kick crossed by Charlie Mulgrew, clearance by
19:25 Shaun Maloney concedes a free kick for a foul on Ross Tokely. Free kick crossed right-footed by Aaron Doran, clearance made
by Daniel Majstorovic.
18:37 Beram Kayal takes a shot. Save by Ryan Esson.
16:49 Free kick awarded for an unfair challenge on Beram Kayal by Grant Munro. Kris Commons produces a strike on goal direct from
the free kick.
15:25 Free kick awarded for a foul by Chris Innes on Gary Hooper. Direct free kick taken by Charlie Mulgrew.
14:16 Anthony Stokes takes a shot. Save by Ryan Esson.
13:10 Free kick awarded for an unfair challenge on Adam Rooney by Daniel Majstorovic. Kenny Gillet takes the direct free kick.
11:11 Emilio Izaguirre gives away a free kick for an unfair challenge on Shane Sutherland. Ross Tokely takes the direct free kick.
9:20 Adam Rooney takes a shot. Save by Fraser Forster.
8:39 GOAL - Kris Commons:Inverness CT 1 - 1 Celtic Kris Commons gets on the score sheet with a goal from outside the penalty area to the top right corner of the goal. Inverness
CT 1-1 Celtic.
8:12 Free kick awarded for an unfair challenge on Emilio Izaguirre by Shane Sutherland. Charlie Mulgrew takes the free kick.
7:53 Free kick awarded for an unfair challenge on Grant Munro by Gary Hooper. Direct free kick taken by Ryan Esson.
6:14 Assist by Shane Sutherland.
6:14 GOAL - Charlie Mulgrew:Inverness CT 1 - 0 Celtic Charlie Mulgrew concedes an unfortunate own goal. Inverness CT 1-0 Celtic.
3:57 Corner taken by Shaun Maloney from the right by-line, Header from close in by Daniel Majstorovic misses to the left of the
3:19 Outswinging corner taken right-footed by Shaun Maloney, clearance made by Nick Ross.
2:47 Corner taken right-footed by Shaun Maloney from the right by-line to the near post, clearance by Chris Innes.
0:25 Shaun Maloney takes a outswinging corner from the right by-line played to the near post, Grant Munro makes a clearance.
0:00 The referee gets the game 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.