Ten-man Celtic twice came from behind to subdue Rangers and stretch their Premiership lead to nine points after a compelling Old Firm clash at Ibrox.

Josh Windass belted Rangers into a third-minute lead but a superb Tom Rogic strike soon had Celtic level.

Daniel Candeias fired the hosts back in front but Celtic responded with a delicate finish from Moussa Dembele.

Celtic had Jozo Simunovic sent off for an elbow before substitute Odsonne Edouard curled in the winner.

There was still time for an incredible miss from Alfredo Morelos two minutes from time, the Rangers striker poking against the post from two yards out.

That cost the hosts an equaliser and ensured a fourth straight win at Ibrox for Brendan Rodgers' side, the first time Celtic have achieved that feat since 1909.

With nine games to play, and eight for Rangers, it also rendered any prospect of a genuine title challenge to the champions almost redundant for another season.

A breathless first half was not three minutes old when the first goal arrived.

If it was a dream start for Rangers, buoyant after 23 goals in their past six games, it was a nightmare for Celtic's Dedryck Boyata.

The Belgian centre-back, back in the side after a five-week absence, looked decidedly ring-rusty as he dallied attempting a flicked pass with the outside of his foot, just inside his own half.

The in-form Windass was on to it in a flash, rampaging into the Celtic area before lashing the ball right-footed into the roof of the net for his 17th goal of the season, and 11th in nine games.

Scott Bain, the on-loan goalkeeper making his Celtic debut after Dorus de Vries suffered an injury in training on Friday, must have wondered what had hit him.

But Celtic did not buckle, and after Kieran Tierney flashed an effort across the face of goal, they were level within eight minutes.

Australian midfielder Rogic, picking the ball up in a central area 30 yards out, brushed off a limp challenge from Sean Goss before curling a superb shot into the far-left corner.

The effort took a slight deflection off David Bates, and in attempting to stop the shot, the Rangers centre-back landed painfully on his right ankle, and promptly departed on a stretcher.

The momentum switched again in the 26th minute. Again Boyata was at fault for Rangers' second goal, failing to deal with Declan John's volleyed cross from the left flank as Morelos got in front of him.

The ball fell invitingly to Candeias, who rifled it low into the opposite corner via a deflection off Tierney.

It was the first time Rangers had managed more than one goal against Celtic since Rodgers took over in the east end of Glasgow.

But the champions showed their mettle to respond again before the interval. Dembele, with a header, and Callum McGregor, with a low drive, both forced Rangers keeper Wes Foderingham into good saves before the equaliser arrived in injury-time.

Scott Brown, picking the ball up in the right-back area, played a long ball up to Dembele, who held off Bates' replacement Fabio Cordoso before lifting the ball over the advancing Foderingham.

If she second half was always likely to struggle to live up to the first for goalmouth action, it was not short of drama.

Cardoso joined Sean Goss in referee Willie Collum's notebook for a cynical foul, before Simunovic earned a red card for an elbow into the face of Morelos.

That was in the 56th minute, but after sacrificing Rogic to put another defender on in Jack Hendry, Rodgers sent on Edouard up front alongside Dembele.

The move paid dividends within two minutes, after Bain had saved well from Morelos at the other end.

Dembele played the ball into Edouard's path and the 20-year-old Frenchman cut inside onto his right foot to stroke the ball into the far corner.

Rangers pressed hard for a late equaliser, but after Bain saved well from Windass, Morelos missed a chance that will haunt the Colombian.