Champions Rangers had to settle for a 3-3 draw after Darren Young slotted home a penalty in the final minute for basement club Dunfermline Athletic in the Scottish Premier League.
Dunfermline went ahead with a header from Andy Tod in the 16th minute before Danish forward Peter Lovenkrands drew Rangers level five minutes later.
Ex-Celtic player Mark Burchill put Dunfermline 2-1 ahead but Rangers stormed back after the break.
Lovenkrands hammered home a penalty in the 65th minute after Dunfermline's Lee Makel handled a Marvin Andrews header and was sent off.
Rangers appeared have tied up the points two minutes later when Chris Burke found the back of the net.
However, when Greek defender Sotirios Kyrgiakos was sent off for a second yellow card and conceded a last-minute penalty, Young ensured Dunfermline had a share of the points.
Celtic have 48 points, four more than Hearts, who romped to a 5-0 win over 10-man Falkirk, while Rangers are in fifth place on 31.
Hibernian held on to third place with 37 points despite losing 2-0 at Inverness Caledonian Thistle.
Kilmarnock beat Dundee United 2-1 to leapfrog Rangers into fourth place with 32 points, while Motherwell beat Aberdeen 3-1 at home.