Celtic cut the gap at the top of the Scottish Premier League to seven points as they survived a late Dunfermline surge to hold on for a 2-1 win at Parkhead on Wednesday.
In a whirlwind start, Celtic scored twice in the opening 13 minutes, with Gary Hooper taking advantage of a Dunfermline mistake to fire home the first before turning provider for James Forrest.
However, the Hoops then squandered a host of chances, with South Korean international Ki Sung-Yeung missing a second-half penalty.
Dunfermline finished the game strongly and pulled one back through Andy Barrowman with four minutes remaining, but Celtic held on for a victory that should have been a lot more comfortable.
Neil Lennon's side could now reduce Rangers' lead to four points with a victory over St Mirren on Saturday before their rivals take on Kilmarnock on Sunday.
"It was a good performance. People will talk about maybe the last three or four minutes of the game but we created umpteen clear-cut chances," the Celtic manager said.
"In terms of their attacking play, the only criticism I have really is we didn't put the game away."
Dunfermline coach Jim McIntyre admitted he had feared the worst early in the game.
"I think after we made a couple of early mistakes, Celtic were giving us the runaround and we were lucky to come in 2-0 down," he said.
"But I was really pleased with the players in the second half as they gave it everything."
Any hopes Dunfermline might have harboured of being given time to settle into the match were blown away when Hooper gave the Hoops a sixth-minute lead.
The English striker intercepted Paul Willis' slack pass and took a couple of touches before dispatching an angled shot low past Paul Gallacher.
The Pars defence barely had time to reorganise before Forrest made it 2-0 in the 13th minute.
Gallacher could not hold on to an Anthony Stokes shot and Hooper played a reverse pass into the path of Forrest, who lifted the ball high over the goalkeeper.
It was not all one-way traffic and Willis saw a low free-kick go narrowly wide before Fraser Forster saved at the feet of Andy Kirk as Dunfermline looked to find a way back into the match.
However, the Hoops then stepped up a gear, with Gallacher saving Beram Kayal's long-range drive with his feet before John Potter blocked a fierce strike from Joe Ledley.
The goalkeeper did well to scramble away a close range effort from Commons before Forrest sent a low strike inches wide of his post, while Hooper went close with a first-time strike.
Paddy McCourt replaced Commons at the break but the Hoops started as they left off and their relentless pressure resulted in a 56th-minute penalty.
Paul Burns' clumsy challenge brought down Forrest as he ran along the edge of the box but Ki sent the resultant spot kick well wide of Gallacher's right-hand post.
Only the post prevented Stokes' deft chip from adding to the scoreline before Dunfermline made a triple substitution.
The fresh legs made an instant impact, with Burns sending a header just wide from Joe Cardle's free-kick before the substitute's low strike forced Forster into a diving save.
Dunfermline began to grow in confidence and after latching on to a long ball, Liam Buchanan saw his attempted lob stopped by a superb one-handed save from Forster.
The Pars pulled one back in the 86th minute through Barrowman. David Graham's pass found the striker just inside the box and his low angled shot squirmed under Forster and into the bottom right-hand corner of the net.