Celtic recovered from going a goal down to beat Kilmarnock in an entertaining match at Rugby Park and join Rangers on 15 points at the top of the table.
In an impressive opening by the hosts, Conor Sammon collected an Alexei Eremenko pass to sweep the ball home past Fraser Forster in seven minutes.
Celtic pushed Kilmarnock back and equalised through Daryl Murphy, who calmly converted a 41st-minute penalty.
Anthony Stokes' first Celtic goal, a close-range effort, won the game.
Prior to the match Celtic manager Neil Lennon said that games such as this would determine his team's season.
His players' ability to fight back from a goal down and, in doing so, play attractive football will offer him encouragement.
Kilmarnock were minus the talents of defender Mohamadou Sissoko and midfielders James Dayton and David Silva, yet there was nothing under-strength about the start they made to the match.
Within the first minute, Harry Forrester had sped down the right and curled in an inviting cross for Sammon, who was denied a goal by a timely intervention by Glenn Loovens.
The Dutchman was engaged in the play moments later, when he steamed in to the back of Alexei Eremenko in midfield, and was booked by Craig Thomson.
In any case, Eremenko dusted himself down, flashed a low free-kick across to Craig Bryson, whose powerful shot from 25 yards was not too far away from Forster's right-hand post.
Kilmarnock took the lead on seven minutes when the Finn Eremenko swept the ball to Sammon, who rushed in from the left, nicked ahead of Loovens and curled a confident low shot into the corner of the net.
Conor Sammon gives Kilmarnock an early lead at Rugby Park
For the visitors, Paddy McCourt posed an early threat with mazy runs and the Israeli Beram Kayal showed glimpses of his talents with his prompting.
Yet for all Celtic had begun to find the pace of the match, they could have been two goals down when Jamie Hamill spliced the ball through the retreating defence for Bryson to chase.
Forster, however, was sharply off his line to clear the ball, but only as far as Eremenko whose attempted long-range lob at an empty goal was a few yards too high.
Killie's Frazer Wright was booked for scything down Shaun Maloney on the right wing in the 19th minute when Celtic threatened.
McCourt had made a rare start for Lennon's side but injured his shoulder midway through the half and was replaced by Stokes.
Celtic had plenty of attacking options, with striker Murphy, midfielder Kayal and defender Emilio Izaguirre striving for the equaliser.
But the Ayrshiremen defended stoutly, with Tim Clancy, Wright, Garry Hay and Manuel Pascali heading, blocking and clearing their way through the half.
Celtic drew level from Murphy's cool penalty in the 41st minute, after Wright had bundled Stokes to the ground in the box.
Before the half-time whistle, Cha Du-Ri made a magnificent saving challenge to halt Forrester's great run to the Celtic 18-yard line, then Majstorovic headed a fraction over the bar from a Maloney corner.
Stokes' tackle on Hamill infuriated Killie boss Mixu Paatelainen
Efrain Juarez replaced Scott Brown for the second half, the Celtic captain having failed to recover from twisting his ankle.
Celtic began the second half as Killie had the first. Stokes tried his luck with a dipping shot from 25 yards which Cameron Bell smothered, and in 52 minutes he scored his first goal for the club since his move from Hibernian.
The creator was the athletic Izaguirre, who raced into the box and crossed sharply for the Irishman to side-foot home from four yards.
Just 90 seconds later, Stokes lunged at Hamill, his studs landing on the Killie midfielder's shin. Thomson's issuing of only a yellow card was lenient.
Celtic enjoyed the lion's share of possession, with Maloney and the Honduran Izaguirre combining well, and Kilmarnock reliant on rare counter-attacks to try to forge the equaliser.
Mixu Paatelainen sent on Danny Invincibile and Rui Miguel for Forrester and Hay, then Liam Kelly for Clancy as Killie chased the game.
Stokes had a few attempts at goal, cutting in from the left and blasting at Bell with his right, while at the other end, Majstorovic challenged Sammon strongly just as he teed up a shot from 10 yards.
With nine minutes to go, Maloney showed a glimpse of the glorious free-kicks he used to score when his dipping 25-yard shot tested Bell's athleticism.
Then Izaguirre, in a move similar to that which created the winning goal, crossed from the left-hand side of the box, but Stokes was a fraction away from connecting for a tap-in to extend his team's lead.
90:00+1:35 The assistant referee flags for offside against Daniele Invincibile. Fraser Forster takes the free kick.
90:00 The game is over, as the referee blows his whistle.
85:50 Emilio Izaguirre produces a left-footed shot from deep inside the penalty box which goes wide of the right-hand upright.
84:45 Sung-Yong Ki takes the direct free kick.
84:45 Booking Ben Gordon booked.
84:40 Free kick awarded for an unfair challenge on Efrain Juarez by Ben Gordon.
83:35 Du-Ri Cha is ruled offside. Cameron Bell restarts play with the free kick.
83:03 Free kick taken by Daniel Majstorovic.
83:03 Booking Manuel Pascali shown a yellow card.
82:53 Manuel Pascali concedes a free kick for a foul on Emilio Izaguirre.
82:04 Free kick awarded for an unfair challenge on Sung-Yong Ki by Marinho Rui Miguel. Anthony Stokes takes the free kick.
80:54 Foul by Liam Kelly on Joe Ledley, free kick awarded. Strike on goal comes in from Shaun Maloney from the free kick, save made
by Cameron Bell.
80:09 Free kick awarded for an unfair challenge on Daniel Majstorovic by Marinho Rui Miguel. Direct free kick taken by Daniel Majstorovic.
77:10 Substitution Tim Clancy goes off and Liam Kelly comes on.
Correction - 76:56 Substitution Liam Kelly comes on in place of Tim Clancy.
76:54 Substitution Beram Kayal leaves the field to be replaced by Sung-Yong Ki.
73:34 Handball decision goes against Anthony Stokes. Free kick crossed by Alexei Eremenko, save by Fraser Forster.
72:25 Unfair challenge on Alexei Eremenko by Beram Kayal results in a free kick. Manuel Pascali restarts play with the free kick.
71:29 Substitution Marinho Rui Miguel joins the action as a substitute, replacing Garry Hay.
70:00 Unfair challenge on Emilio Izaguirre by Conor Sammon results in a free kick. Fraser Forster takes the free kick.
68:17 Shot from long range by Emilio Izaguirre goes wide of the left-hand post.
66:09 Alexei Eremenko restarts play with the free kick.
66:09 Substitution Daniele Invincibile is brought on as a substitute for Harry Forrester.
66:09 Unfair challenge on Alexei Eremenko by Beram Kayal results in a free kick.
65:49 Free kick awarded for a foul by Beram Kayal on Jamie Hamill. Direct free kick taken by Manuel Pascali.
53:58 Manuel Pascali takes the direct free kick.
53:58 Booking Caution for Anthony Stokes.
53:48 Manuel Pascali fouled by Anthony Stokes, the ref awards a free kick.
51:29 Emilio Izaguirre provided the assist for the goal.
51:29 GOAL - Anthony Stokes:Kilmarnock 1 - 2 Celtic Anthony Stokes fires in a goal from close in to the bottom right corner of the goal. Kilmarnock 1-2 Celtic.
50:48 Emilio Izaguirre takes the outswinging corner, clearance made by Conor Sammon.
49:26 Handball decision goes against Garry Hay. Glenn Loovens takes the direct free kick.
48:47 Anthony Stokes takes a shot. Save by Cameron Bell.
45:07 Inswinging corner taken by Garry Hay from the right by-line, Joe Ledley makes a clearance.
45:01 Substitution Efrain Juarez replaces Scott Brown.
45:01 The second half begins.
45:00+2:22 Inswinging corner taken left-footed by Emilio Izaguirre from the right by-line, clearance made by Manuel Pascali.
45:00+0:08 Corner taken right-footed by Shaun Maloney from the left by-line, Headed effort from deep inside the penalty area by Daniel
Majstorovic goes harmlessly over the crossbar.
45:00 The whistle is blown to end the first half.
44:55 Centre by Du-Ri Cha.
43:57 Anthony Stokes is caught offside. Manuel Pascali takes the free kick.
42:05 Corner from the right by-line taken by Garry Hay, save made by Fraser Forster.
41:32 Free kick awarded for an unfair challenge on Alexei Eremenko by Joe Ledley. Direct free kick taken by Alexei Eremenko.
40:49 GOAL - Daryl Murphy:Kilmarnock 1 - 1 Celtic Penalty taken left-footed by Daryl Murphy and scored. Kilmarnock 1-1 Celtic.
39:47 Unfair challenge on Anthony Stokes by Frazer Wright results in a Penalty.
36:42 Inswinging corner taken from the left by-line by Shaun Maloney.
35:13 Foul by Du-Ri Cha on Garry Hay, free kick awarded. Free kick taken by Frazer Wright.
33:28 Foul by Alexei Eremenko on Joe Ledley, free kick awarded. Direct free kick taken by Emilio Izaguirre.
31:02 Inswinging corner taken from the left by-line by Shaun Maloney.
29:11 Corner taken by Shaun Maloney.
28:55 Inswinging corner taken right-footed by Shaun Maloney played to the near post, clearance by Conor Sammon.
26:04 Inswinging corner taken right-footed by Daryl Murphy, save made by Cameron Bell.
25:04 Corner from the left by-line taken by Shaun Maloney, Craig Bryson makes a clearance.
22:44 Harry Forrester concedes a free kick for a foul on Emilio Izaguirre. Shaun Maloney crosses the ball in from the free kick,
Foul by Glenn Loovens on Jamie Hamill, free kick awarded. Free kick taken by Cameron Bell.
21:37 Substitution (Celtic) makes a substitution, with Anthony Stokes coming on for Patrick McCourt.
18:04 The free kick is swung in left-footed by Emilio Izaguirre, Cameron Bell makes a save.
18:04 Booking The referee shows Frazer Wright a yellow card.
17:54 Frazer Wright concedes a free kick for a foul on Shaun Maloney.
13:26 Inswinging corner taken by Shaun Maloney from the left by-line.
11:30 The referee blows for offside. Emilio Izaguirre takes the free kick.
7:00 Assist on the goal came from Alexei Eremenko.
7:00 GOAL - Conor Sammon:Kilmarnock 1 - 0 Celtic Conor Sammon grabs a goal from the edge of the penalty box to the bottom right corner of the goal. Kilmarnock 1-0 Celtic.
6:05 Foul by Daniel Majstorovic on Conor Sammon, free kick awarded. Jamie Hamill takes the free kick.
5:13 Free kick awarded for a foul by Beram Kayal on Craig Bryson. Frazer Wright restarts play with the free kick.
3:10 Shot from just outside the box by Craig Bryson misses to the left of the target.
2:24 Alexei Eremenko restarts play with the free kick.
2:24 Booking Glenn Loovens booked.
2:16 Alexei Eremenko fouled by Glenn Loovens, the ref awards a free kick.
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.