First half goals from Kemar Roofe and Alfredo Morelos, either side of Odsonne Edouard’s header gave the hosts the half-time lead – and the y capitalised on Celtic’s ten men to add another through Roofe in the second half.
Roofe's first - a clever chested finish from ten yards out to beat Scott Bain - was followed immediately by Callum McGregor's dismissal for Celtic after picking up a second yellow card in the build-up.
Celtic responded when Edouard headed in from close range but Morelos was emphatic in his finish to restore the lead Rangers would not relinquish.
Roofe added a classy header in the second to extend the lead, but Borna Barisic limped out with 15 minutes left to slightly sour an enjoyable afternoon for the blue half of Glasgow.
Substitute Jermain Defoe added a late goal to add gloss to the scoreline.
Here is how the Rangers players rated in the victory.
Player ratings scale - 10: One of best performances you've seen. 9: Outstanding. 8: Very good. 7: Good. 6: Average. 5: Poor, 4: Very poor. 3: Terrible day at office. 2: Abysmal. 1: One of worst performances you've seen.