Aberdeen inflicted a first cinch Premiership defeat of the season on Hearts, winning 2-1 at Pittodrie thanks to a Lewis Ferguson goal after John Souttar's opener was cancelled out by Marley Watkins. Celtic missed the chance to go top - and missed a last-minute penalty - as they were held 0-0 by Livingston.
St Johnstone ended Dundee United's good run with a 1-0 success at Tannadice and Dundee beat St Mirren 1-0 in Paisley to move four points clear of bottom club Ross County, whose game with Hibernian was postponed. Leaders Rangers play Motherwell at Fir Park on Sunday, live on Sky Sports at 12 noon.
Kilmarnock moved two points clear at the top of the cinch Championship with a 4-0 home win over Queen of the South. Second-placed Inverness CT drew 0-0 with Partick Thistle in Glasgow while Arbroath hit back to see off bottom club Dunfermline Athletic 4-2 at Gayfield. Raith Rovers beat Ayr United 2-1 at Stark's Park while Morton drew 1-1 with Hamilton Accies at Cappielow.
Queen's Park remain ahead of Cove Rangers on goal difference at the top of cinch League 1 after a 3-3 draw between the teams at the Balmoral Stadium. Airdrieonians went down 2-1 to Alloa Athletic and Montrose are up to third following a 0-0 draw at Peterhead. Falkirk are just three points off the top after beating Clyde 3-1 at Broadwood while bottom club East Fife defeated Dumbarton 2-1 at Bayview.
Kelty Hearts remain six points clear in cinch League 2 after a 1-1 draw with closest challengers Stirling Albion at New Central Park. Forfar Athletic were 3-2 winners against Stranraer at Stair Park and Annan Athletic beat bottom club Cowdenbeath 1-0 at Galabank.