Substitute Odsonne Edouard scored the winner as Celtic overcame the dismissal of Jozo Simunovic to beat Rangers 3-2 in a pulsating Old Firm derby.
Brendan Rodgers' side twice pegged back their rivals in a see-saw opening half before Simunovic was shown a straight red card for elbowing Rangers forward Alfredo Morelos.
However, despite being down to 10 men, Edouard curled home with his right foot in the 69th minute to secure Celtic a fourth straight league triumph at Ibrox and extend their lead at the top of the Scottish Premiership table to nine points.
It did not take long for the third meeting of the season to catch fire, Windass capitalising on an error by Dedryck Boyata to give the home side the lead inside three minutes with a firm shot that flashed beyond debutant goalkeeper Scott Bain.
Celtic responded quickly, though, as Tom Rogic's glorious curling finish levelled the game with just 12 minutes on the clock.
Rangers were dealt a blow with the loss of David Bates – the defender injured while challenging scorer Rogic – but edged back ahead when Daniel Candeias' first-time strike found the net via a deflection off Kieran Tierney.
However, Celtic hit back again, Scott Brown's sumptuous pass allowing Moussa Dembele to lob the advancing Wes Foderingham in stoppage time
Simunovic's dismissal in the 57th minute appeared to give Rangers the advantage, yet it was the visitors who scored the all-important fifth goal thanks to an inspired change.
Just two minutes after replacing James Forrest, Edouard - who is on loan from Paris Saint-Germain - collected Dembele's pass before cutting in from the left to bend a shot beyond Foderingham's desperate dive.
Morelos had a glorious late chance to rescue a point but could only hit the post from point-blank range, meaning Rangers' six-match winning run in all competitions came to an end at the hands of their fierce rivals.