Livingston halted Scottish Premiership leaders Rangers’ 100% record as Steven Gerrard’s side missed the chance to go eight points clear of Celtic.
With their city rivals idle, Rangers had the chance to push further clear but were frustrated by an obdurate Livingston performance.
Max Stryjek made a stunning save from a Borna Barisic free-kick and Ryan Kent twice came close for the visitors, but the point was enough to return Rangers to the summit ahead of Hibernian on goal difference.
Livingston, without striker Lyndon Dykes sidelined after a club-record bid was accepted, claimed an unlikely second point of the season.
They even came close to snatching more, when Craig Sibbald almost caught out Rangers keeper Jon McLaughlin with an audacious attempt from his own half.
Rangers’ frustration was felt from early on when referee Nick Walsh decided there had been no infringement after Kent’s shot appeared to strike the arm of Jon Guthrie in the Livingston box.
Kent tried to take matters into his own hands with a run and shot from the left that was dealt with by Stryjek, who had replaced on-loan Rangers keeper Robby McCrorie.
The introduction of Brandon Barker and Kemar Roofe did little to unsettle the home side, who lost Marvin Bartley to injury before the hour, and Morelos made way for Cedric Itten after nodding over.
In one of few forays forward, Sibbald spotted an opportunity to catch McLaughlin off his line and the midfielder’s almighty chip was palmed away gratefully by the goalkeeper.
Barisic had opened the scoring in the midweek win over St Johnstone with a free-kick and was given another chance after Jason Holt fouled Glen Kamara, but Stryjek got his hand to the shot before the home team scrambled clear.
One further clear opening came Rangers’ way with Kent getting into a shooting position on the edge of the box but he curled wide.
Man of the match – Jon Guthrie
What did we learn?
With Dykes’ exit imminent, the role of bustling centre-forward will fall on Jack Hamilton and the 20-year-old caused the Rangers defence problems in the first half even with limited service.
Livingston’s defensive unit was much more reminiscent of last season, dealing with countless dangerous balls into the area as Gary Holt’s side secured their second draw in four games.
Rangers had the kind of dominance in possession they enjoyed in their previous three league matches but it did not translate into pressure until the second half.
Swedish defender Filip Helander, making his first start of the season, looked uncomfortable on the artificial surface after coming in for the injured Leon Balogun. However, Rangers remain the only side in the top flight yet to concede a goal.
What did they say?
Livingston head coach Gary Holt: “I think you’ve got to praise big Jack Hamilton, who came in and started in attack, didn’t know he was playing until late. I was delighted with him.
“It’s hard work, it’s tough, especially against a very good Rangers side, who were relentless coming forward. I think we stood the test and deserved a clean sheet.”
Rangers manager Steven Gerrard told Sky Sports: “We kept getting into the right areas of the pitch but we just lacked that bit of quality in the final third.
“The reality is we didn’t test their keeper enough in the first 45 minutes considering it was his debut. As a team we know what we are doing by now, so we’ve got ourselves to blame in terms of not having the answers today in the final third.”
Rangers host Kilmarnock on Saturday, while Livingston visit Aberdeen the following day.