Anothony Stokes scored two second-half goals to give Celtic victory against 10-man Inverness.
The home side had Greg Tansey controversially ordered off for leading with an arm in an aerial challenge nine minutes before the interval.
With an hour gone, Stokes finished off a neat passing move involving James Forrest and Gary Hooper.
And the striker volleyed in from an acute angle to wrap up the points with his 11th goal of the season.
Celtic move to within nine points of Scottish Premier League leaders Rangers, who host St Johnstone later on Saturday, while the defeat leaves Inverness bottom of the table.
Both defences looked vulnerable in the early stages.
On 12 minutes, Stokes found room after taking a Georgios Samaras flick at the edge of the penalty box but his shot was straight at Caley keeper Ryan Esson.
Soon after, Jonny Hayes gathered a Tansey pass and curled in a low shot that Celtic keeper Fraser Forster pushed away on the stretch.
Inverness defender Josh Meekings then made a good block to prevent Stokes finding the net from eight yards, after Hooper and Forrest had combined well inside the penalty area.
With 36 minutes gone, an evenly contested match swung in favour of the visitors when Tansey was shown a straight red card for leading with an arm as he challenged for a high ball with Samaras.
Referee Stevie O'Reilly indicated the use of an elbow but contact was with the midfielder's hand and was minimal, leaving the home fans outraged by the decision.
Celtic laboured for a long period to break down stubborn Inverness resistance but the visitors made the breakthrough in style on the hour.
Hooper and Forrest exchanged sharp passes on the edge of the penalty box before the former picked out Stokes for a simple finish from close range.
Ten minutes later, Hooper and Forrest again combined to create another opening for the in-form Stokes.
Forrest's shot from 18 yards was blocked and fell to the Irish striker, who crashed a volley across Esson and into the far corner of the net from a tight angle.
Inverness responded with an enterprising run from Hayes but his final shot lacked power, allowing Forster to save comfortably.
With Terry Butcher's depleted side tiring, Celtic substitute Kris Commons was left unmarked to volley over from an Adam Matthews delivery.
Tempers frayed in the closing minutes when Andrew Shinnie flew into a reckless challenge on Celtic replacement Pat McCourt but O'Reilly was lenient on this occasion, choosing to book him.
Live Text Commentary
Full Time The game is over, as the referee blows his whistle.90:00 +1:29
Handball decision goes against Johnny Hayes. Fraser Forster restarts play with the free kick.89:23
Sung-Yeung Ki crosses the ball in from the free kick, Ryan Esson makes a save.89:23 Booking
Booking Andrew Shinnie is cautioned by the ref for unsporting behaviour.89:10
Free kick awarded for a foul by Andrew Shinnie on Patrick McCourt.87:42
Andrew Shinnie decides to take the corner short.85:54
Andrew Shinnie challenges Gary Hooper unfairly and gives away a free kick. Sung-Yeung Ki restarts play with the free kick.82:57
Inswinging corner taken right-footed by Sung-Yeung Ki, Daniel Majstorovic gives away a free kick for an unfair challenge on Ross Tokely. Ryan Esson takes the free kick.81:52
Effort on goal by Kris Commons from inside the penalty area goes harmlessly over the bar.80:59 Substitution
Substitution Kris Commons replaces James Forrest.80:10
Johnny Hayes takes a shot. Save by Fraser Forster.79:23
Unfair challenge on Adam Matthews by Shane Sutherland results in a free kick. Adam Matthews restarts play with the free kick.77:01
Free kick awarded for a foul by Johnny Hayes on Beram Kayal. Direct free kick taken by Sung-Yeung Ki.77:01 Substitution
Substitution Gregory Tade leaves the field to be replaced by Shane Sutherland.77:01 Substitution
Substitution Richie Foran leaves the field to be replaced by David Proctor.71:43
James Forrest provided the assist for the goal.71:43 Goal scored
Goal! - Anthony Stokes - Inverness 0 - 2 Celtic Anthony Stokes gets on the score sheet with a goal from inside the area to the bottom left corner of the goal. Inverness CT 0-2 Celtic.69:42
Kenny Gillet is flagged offside by the assistant referee. Fraser Forster restarts play with the free kick.68:22 Substitution
Substitution (Celtic) makes a substitution, with Patrick McCourt coming on for Badr El Kaddouri.65:41
Josh Meekings restarts play with the free kick.
Booking Badr El Kaddouri goes into the referee's book for unsporting behaviour.65:27
Foul by Badr El Kaddouri on Gregory Tade, free kick awarded.64:53
Sung-Yeung Ki takes a outswinging corner.64:26
Anthony Stokes takes a shot. Save by Ryan Esson.63:49
Corner taken short by Sung-Yeung Ki.62:20
James Forrest fouled by Kenny Gillet, the ref awards a free kick. Adam Matthews takes the free kick.60:09
The assist for the goal came from Gary Hooper.60:09 Goal scored
Goal! - Anthony Stokes - Inverness 0 - 1 Celtic Anthony Stokes gets on the score sheet with a goal from close range low into the middle of the goal. Inverness CT 0-1 Celtic.58:26
Josh Meekings takes the direct free kick.58:26 Booking
Booking Daniel Majstorovic is shown a yellow card.58:15
Free kick awarded for a foul by Daniel Majstorovic on Gregory Tade.55:46
Sung-Yeung Ki takes a inswinging corner.54:00 Substitution
Substitution Sung-Yeung Ki replaces Georgios Samaras.51:04
Badr El Kaddouri takes the free kick.51:04 Booking
Booking Richie Foran is cautioned by the ref for unsporting behaviour.50:44
Richie Foran gives away a free kick for an unfair challenge on Daniel Majstorovic.49:01
Johnny Hayes takes a shot. Fraser Forster makes a save.48:11
Foul by Daniel Majstorovic on Andrew Shinnie, free kick awarded. Free kick taken by Andrew Shinnie.47:14
Georgios Samaras has an effort at goal from outside the area which misses left.45:01
The second half has started.45:00 +1:06 Half time
Half Time It is the end of the first-half.39:49
Joe Ledley concedes a free kick for a foul on David Davis. Free kick taken by Josh Meekings.36:21
Anthony Stokes shoots direct from the free kick.36:21 Dismissal
Dismissal Greg Tansey is sent off by the referee for violent conduct.36:08
Unfair challenge on Georgios Samaras by Greg Tansey results in a free kick.34:33
The assistant referee flags for offside against Richie Foran. Fraser Forster takes the free kick.32:59
Free kick awarded for a foul by Andrew Shinnie on James Forrest. Beram Kayal restarts play with the free kick.31:24
Free kick awarded for an unfair challenge on Anthony Stokes by Ross Tokely. Free kick crossed right-footed by Adam Matthews from right channel, save made by Ryan Esson.30:21
Gregory Tade is caught offside. Fraser Forster restarts play with the free kick.29:41
Outswinging corner taken by Adam Matthews, Richie Foran makes a clearance.29:21
Anthony Stokes takes a shot. Ross Tokely gets a block in.27:40
Ryan Esson restarts play with the free kick.27:40 Booking
Booking The referee shows Beram Kayal a yellow card.27:15
Unfair challenge on Richie Foran by Beram Kayal results in a free kick.24:55
Adam Matthews takes the direct free kick.24:55 Booking
Booking Booking for Chris Hogg.24:44
Free kick awarded for a foul by Chris Hogg on Gary Hooper.23:51
Ross Tokely fouled by Anthony Stokes, the ref awards a free kick. Ryan Esson takes the direct free kick.22:53
The referee blows for offside. Free kick taken by Fraser Forster.19:51
Unfair challenge on James Forrest by Kenny Gillet results in a free kick. The free kick is delivered right-footed by Adam Matthews from right wing, clearance by Ross Tokely.17:56
The referee blows for offside. Fraser Forster takes the indirect free kick.17:34
Andrew Shinnie decides to take a short corner.17:15
Johnny Hayes takes a shot. Save by Fraser Forster.13:49
Adam Matthews takes the outswinging corner, clearance by Richie Foran.12:53
Richie Foran challenges Victor Wanyama unfairly and gives away a free kick. Fraser Forster takes the free kick.12:34
James Forrest challenges Kenny Gillet unfairly and gives away a free kick. Free kick taken by Kenny Gillet.11:40
Anthony Stokes takes a shot. Ryan Esson makes a save.11:01
Kenny Gillet gives away a free kick for an unfair challenge on Adam Matthews. Fraser Forster takes the direct free kick.10:43
Foul by Georgios Samaras on Josh Meekings, free kick awarded. Free kick taken by Josh Meekings.8:13
Short corner taken by Greg Tansey.5:34
Corner taken right-footed by Adam Matthews, Ryan Esson makes a save.4:44
Daniel Majstorovic fouled by Gregory Tade, the ref awards a free kick. Fraser Forster takes the free kick.3:26
Shot from outside the penalty box by David Davis goes wide right of the goal.3:08
Handball decision goes against Georgios Samaras. Free kick taken by Chris Hogg.2:34
Shot from just outside the box by Beram Kayal goes over the crossbar.0:00
The referee gets the game started.
Live data and text provided by our data suppliers