Rangers ended Celtic's long unbeaten run at home with this deserved but unexpected victory.
The visitors were under intense pressure throughout the first half, but Ugo Ehiogu's strike early in the second half was enough to separate the sides.
This was the central defender's first goal for Rangers and came from a superb overhead kick.
Celtic totally dominated the first half but their shooting was wayward. Kenny Miller lofted over an early chance created by Jan Vennegoor of Hesselink and Evander Sno blazed his shot wildly past when Neil Lennon's free-kick fell to him.
Miller again wasted a good chance before Aiden McGeady was unlucky with a 25-yard swerving shot which went narrowly wide.
There were claims for a penalty when McGeady went down under Ehiogu's challenge before Steven Pressley headed wide a Shunsuke Nakamura corner.
Allan McGregor in the Rangers goal did well to parry out McGeady's powerful 25-yard shot with Ian Murray completing the clearance.
Rangers went ahead early in the second half when Charlie Adam's corner was headed on by Filip Sebo and David Weir for Ehiogu to score with a spectacular overhead effort, though Artur Boruc looked slow to react.
This goal lifted Rangers and they might have added to their lead as Celtic began to look weary after their midweek Champion's League exertions. Nacho Novo shot straight at Boruc after a quickly taken free-kick and then the winger's astute cut-back was missed by both Sebo and Barry Ferguson.
Celtic tried to press towards the end, but Vennegoor of Hesselink glanced his header wide and substitute Derek Riordan's shot was deflected for a corner.