By Colin Moffat
Celtic's Jan Venneggor of Hesselink scored an injury-time header to narrow the gap on Rangers to one point.
Shunsuke Nakamura fired Celtic in front with a wonderful swerving shot, while Nacho Novo's angled strike levelled matters early in the second half.
Carlos Cuellar was sent off for handling a net-bound Nakamura shot but the injured Allan McGregor was able to save Scott McDonald's spot-kick.
But, with 93 minutes played, the Dutch striker nodded in from close range.
A tumultuous match ended with an ugly scuffle involving several players.
With Rangers having played two games less than their closest challengers, Walter Smith's men remain strong favourites in the title race.
However, Celtic will take great heart from a stirring win and the teams meet again at Celtic Park on 26 April.
The game opened in typically frantic fashion, with the home side looking particularly anxious.
The opening 15 minutes were notable only for a series of bruising challenges, with Celtic's Paul Hartley picking up the game's first yellow card for a late lunge at Lee McCulloch.
However, after winning a sequence of corners, Celtic took the lead in spectacular fashion. Nakamura, criticised for an anonymous display in the previous Old Firm clash, picked up a pass from Gary Caldwell and the ball sat up nicely for the Japanese star to lash home a swerving strike from 25 yards.
McGregor had no chance at stopping the goal but the Rangers keeper did not look too convincing when he awkwardly pushed away a fierce cross from McDonald that may have been creeping in at the near post.
Rangers were struggling to get hold of the ball and when the visitors did get a sight of goal Jean-Claude Darcheville blazed a long-range shot high over the crossbar.
On the stroke of half time, Darcheville scampered on to a Steven Whittaker pass but his scuffed shot hit the covering Lee Naylor and found the side-netting.
Novo replaced defender Kirk Broadfoot at the break and the little striker wasted no time in making his mark.
With the whirlwind pace showing no signs of abating, Novo collected a Whittaker pass and sped into the penalty box before rifling a low, angled strike into the far corner of the net.
Celtic responded with a flurry of attacks, with Rangers defenders throwing themselves into blocks in and around their penalty area.
On 70 minutes, the match took another dramatic turn when Cuellar was sent off for pushing Nakamura's shot onto the crossbar.
McDonald stepped up to take the resulting penalty kick but McGregor, who was limping with an ankle injury, sprung to his left and tipped the ball on to the post before gathering.
McGregor was strapped up but only lasted another six minutes and had to be replaced by Neil Alexander.
Celtic poured forward in search of a winner and were rewarded in the 93rd minute when Vennegoor of Hesselink headed home from McDonald's nodded set-up.
--------------------------------------------------------------------------------
Celtic: Boruc, Hinkel, Caldwell, McManus, Naylor (Wilson 46), Nakamura, Hartley, Robson (Samaras 75), McGeady, McDonald, Vennegoor of Hesselink. Subs Not Used: Mark Brown, McGowan, Sno, Donati, Balde. Booked: Hartley, Vennegoor of Hesselink.
Goals: Nakamura 20, Vennegoor of Hesselink 90.
Rangers: McGregor (Alexander 77), Broadfoot (Novo 46), Cuellar, Weir, Papac, Dailly, Whittaker, Ferguson, Davis, McCulloch, Darcheville (Cousin 83). Subs Not Used: Boyd, Naismith, Furman, McMillan.
Sent Off: Cuellar (70).
Booked: Broadfoot, Naismith, Weir.
Goal: Novo 55.
Att: 58,964
Ref: K Clark
WOHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO,,,,,,,,,,,,,,,,
