Match ends, Rangers 3, Arbroath 2.
Rangers twice came from behind to beat Arbroath and move 23 points clear at the top of Scottish League One.
David Banjo fired the visitors ahead but Jon Daly stroked home to level before half-time.
Arbroath led again when Robert Linn escaped the Rangers defence to score only for David Templeton to tuck away the home side's second equaliser.
A foul on Daly gave Lee McCulloch the chance to score from the penalty spot and the club captain converted.
And, with nearest challengers Dunfermline losing, Ally McCoist's side extended their lead at the top.
With over 40 point separating Rangers and Arbroath before kick-off, few would have expected the second-bottom side in the division to net first at Ibrox.
But Banjo had other ideas, converting Alan Cook's cross to stun the large home crowd.
Lee Wallace's powerful effort flew past the Arbroath post and team-mate Ian Black came close with a free-kick before the pair combined to set up Daly for the leveller.
Dean Shiels fired into the side netting and Bilel Mohsni had a header cleared of the line as the hosts tried to get in front before the break.
The second half opened as the first had - with Arbroath taking the lead.
A mistake by McCulloch allowed Linn to break free and unleash a shot that trundled over the line after hitting the post.
Templeton and Andy Little replaced Lewis Macleod and Shiels and it was the former Hearts player who was next to score, drilling low into the net from inside the box.
And, after Daly was felled by Colin Hamilton, McCulloch gained Rangers the lead for the first time and it proved to be the winner.
- 8BlackBooked at 54mins
- 7ShielsSubstituted forLittleat 59'minutes
- 10MacLeodSubstituted forTempletonat 56'minutes
- 19Sanchez Cribari
- 3HamiltonBooked at 77mins
- 9BanjoSubstituted forSheerinat 79'minutes
- 8ChisholmSubstituted forBayneat 85'minutes
- 11ScottSubstituted forMcManusat 79'minutes
- 10CookBooked at 60mins
- Barry Cook
- Shots on Target
Second Half ends, Rangers 3, Arbroath 2.
Attempt blocked. David Templeton (Rangers) right footed shot from the centre of the box is blocked.
Attempt blocked. Fraser Aird (Rangers) right footed shot from outside the box is blocked.
Ian Black (Rangers) wins a free kick on the right wing.
Foul by Paul McManus (Arbroath).
Corner, Arbroath. Conceded by Sebastien Faure.
Attempt missed. Fraser Aird (Rangers) right footed shot from the right side of the box is close, but misses to the left.
Attempt saved. Graham Bayne (Arbroath) header from the centre of the box is saved in the centre of the goal.
Foul by Lee McCulloch (Rangers).
Graham Bayne (Arbroath) wins a free kick in the defensive half.
Substitution, Arbroath. Graham Bayne replaces Ross Chisholm.
David Templeton (Rangers) wins a free kick in the defensive half.
Foul by Kevin Nicoll (Arbroath).
Attempt missed. Bilel Mohsni (Rangers) header from the centre of the box is just a bit too high following a corner.
Corner, Rangers. Conceded by Colin Hamilton.
Corner, Rangers. Conceded by Scott Morrison.
Substitution, Arbroath. Paul McManus replaces Christopher Scott.
Substitution, Arbroath. Paul Sheerin replaces David Banjo.
Goal! Rangers 3, Arbroath 2. Lee McCulloch (Rangers) converts the penalty with a right footed shot to the top left corner.