Ryan Jack's first Rangers goal proved enough to earn a 1-0 victory and end Celtic's recent dominance of the Old Firm derby.
Rangers had not beaten their arch rivals since April 2016, losing 10 of the 12 meetings since Brendan Rodgers took charge of the Hoops.
But Steven Gerrard ended the run in his first home derby on Saturday, as Jack's first-half goal earned a deserved win that moves them level on points with the Scottish Premiership champions, having played a game more.
Rangers made a bright start and forced two excellent Craig Gordon saves, the goalkeeper denying Daniel Candeias – whose effort deflected off Callum McGregor's arm - before producing a fingertip stop to keep out Connor Goldson's header.
The hosts came even closer when Celtic captain Scott Brown inadvertently headed Andy Halliday's corner against his own post.
A Rangers breakthrough looked likely and it duly arrived on the half-hour mark. Ryan Kent showed pace and poise down the left before laying it back to Jack, whose shot hit Brown on its way beyond Gordon from 12 yards.
A mix-up between Gordon and Dedryck Boyata gave Rangers a huge chance just after half-time, but both atoned themselves as Kent's effort was saved before the Belgium defender cleared Scott Arfield's follow-up off the line.
Gordon was again called upon to claw away another strike from Kent, who was making his first appearance in three weeks.
Rodgers brought on Odsonne Edouard for derby debutant Michael Johnston, but it was McGregor who thought he had equalised with a low finish - only to be denied by the offside flag - and Celtic created little else.
With their last win having come on penalties, this was the first time Rangers won a derby in 90 minutes since March 2012.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.