Celtic survived a late scare to hand their fans an early Christmas present in the shape of a 2-1 win over Kilmarnock which cut their deficit to leaders Rangers to just one point on Saturday.
Celtic host Rangers at Parkhead on Wednesday, but the champions' hopes of striding confidently into the derby clash suffered a blow with a shock 2-1 defeat away to St Mirren.
Goals in either half from Georgios Samaras had Celtic seemingly cruising to victory before a late strike from substitute Danny Racchi put the home fans on edge for the closing minutes.
It was Celtic's eighth win in a row, and their bid for a ninth will be boosted by the news that Rangers pair Lee McCulloch and Dorin Goian -- both of whom were sent off against St Mirren -- will be suspended from Wednesday's meeting.
"The day couldn't have gone better for us really," Celtic manager Neil Lennon said. "It was a good performance, a good three points and we've closed the gap but it's only one day and there is a lot of football to go."
Kilmarnock began brightly with Gary Harkins' shot being snuffed out by Charlie Mulgrew.
Celtic winger James Forrest wasn't far away with a fierce strike from 25 yards before Dean Shiels dragged his shot wide at the other end after good build-up play from Heffernan.
Gary Hooper missed a golden chance to give Celtic the lead when he flicked the ball over the bar from close range after keeper Cammy Bell had spilled Forrest's initial shot.
Scott Brown made some room for himself on the edge of the Killie box but sent his low drive straight to Bell before Hooper flicked Mulgrew's free-kick on to the roof of the net.
Samaras made the breakthrough two minutes into first-half stoppage time. Persistent work from Cha Du-Ri saw the South Korean whip the ball across from the right and Samaras out-jumped Mohamadou Sissoko to send a downward header past Bell.
No sooner had news filtered through of Rangers' defeat to St Mirren than the Hoops doubled their advantage through Samaras in the 53rd minute.
Hooper picked him out and Sissoko's slip allowed the Greek room at the edge of the box to rifle his shot low under Bell.
Kilmarnock pulled one back in the 87th minute when substitute Raachi crafted a chance out of nothing and sent a superb low strike under Fraser Forster to set up a nervy finish.
Despite the defeat, Killie manager Kenny Shiels felt there had been nothing between the two sides.
"I feel it was an even match and overall a draw would've been a fair result," he said. "We matched them for long periods and our organisation was good in the first-half."
Rangers had got off to a great start when Lee Wallace gave the visitors an 11th-minute lead in Paisley with his first goal for the club.
However things went from bad to worse for Ally McCoist's side, who went in at the half-time interval 2-1 down after losing Lee McCulloch to a red card in the 24th minute for violent conduct.
Aaron Mooy equalised for the Buddies in the 44th minute, with Paul McGowan giving the hosts a deserved lead two minutes into first-half injury time.
Rangers' late push for an equaliser came apart when Dorin Goian was sent off for his second bookable offence of the game with less than 10 minutes remaining.
Elsewhere, Hearts put their financial woes to one side to defeat Motherwell 2-0, Inverness defeated Aberdeen 2-1, St Johnstone thrashed bottom club Dunfermline 3-0 and Dundee United came from behind to win 3-1 against Hibernian.