Rangers took a giant step to regaining the title from Celtic with this hard-fought victory which leaves them six points clear with a game in hand.
Rangers' goal came just before half-time in a period where they had to withstand a barrage from attacks from Celtic.
Barry Ferguson was involved in the slick build up before Jean-Claude Darcheville's clever lay off put Kevin Thomson through and the midfield player angled his shot across Artur Boruc and into the far corner.
Early on, Jan Vennegoor of Hesselink's flick from an Aiden McGeady cross found the side-netting, before Shunsuke Nakamura's shot was held by Allan McGregor.
Rangers went close when Lee McCulloch's header from a Thomson cross went inches wide.
Celtic were controlling the midfield and, from Vennegoor of Hesselink's pass, Georgios Samaras could only shoot straight at McGregor.
Samaras then cleverly laid the ball off to Scott Brown, who lost control as he advanced into the box.
Celtic skipper Stephen McManus was booked for a bad foul on Darcheville but Thomson's free-kick was cleared.
A header by Vennegoor of Hesselink reached Brown but his shot from an acute angle hit the post and went behind.
Samaras was finding a lot of space in front of the Rangers rearguard but his pass to Vennegoor of Hesselink was just too firm for the striker to reach.
Ferguson hit a shot on the turn which Boruc saved well before Celtic nearly went ahead.
From Naylor's cross, Vennegoor of Hesselink laid the ball off to Brown who held off Steven Whittaker's challenge but failed to get his shot away.
Rangers then hit the visitors with a killer goal by Thomson after a clever one-two with Darcheville.
Celtic pushed for an equaliser at the start of the second half but Vennegoor of Hesselink's header was too near McGregor.
Andreas Hinkel cut in from the right before unleashing a shot from 25 yards which was heading for the top corner before McGregor somehow got a hand to it to touch over the bar.
Celtic threw everyone forward in the closing minutes but it was Rangers who came closest to increasing their lead when Boruc made a superb save from substitute Charlie Adam.