Mikey Johnston’s cross-cum-shot had put them in front, before Tom Beadling’s leveller forced extra-time.
But Forrest’s deflected effort rescued the laboured hosts, still reeling from their midweek Champions League exit.
The holders are now unbeaten in 28 domestic cup matches.
Worryingly though for Celtic, defender Kristoffer Ajer was forced off with a shoulder injury in the second half.
Sluggish Celtic endure Euro hangover
Pre-match the Celtic fans group known as the Green Brigade held up a banner criticising the club’s board after the chastening midweek Champions League exit at the hands of Cluj, and the swathes of empty green seats at Celtic Park told its own story.
Long before Beadling’s strike hit the back of the net to silence the already sombre home support, the signs of a European hangover were there as the defence, on the few occasions it was tested, looked frail and the attack was laboured.
Neil Lennon came in for all sorts of flak after leaving £10m worth of new defenders in Christopher Jullien and Boli Bolingoli on the bench midweek as his side shipped four goals at home, with midfielder Callum McGregor playing at left-back. Both started this time, but neither impressed.
Jullien’s performance in particular suggested why he was not trusted to start in Celtic’s biggest game of the season as the £7m pound signing from Toulouse seemed off the pace from the start. Dunfermline’s Kevin Nisbet should have rifled his side in front after he pounced on Jullien’s sclaffed clearance to race through on goal, and last season’s top scorer in League One had the Frenchman in all sorts of trouble minutes later when he allowed a long ball to bounce.
Almost symbolically, Dunfermline’s equaliser came as Celtic’s most reliable defender Ajer was forced off the pitch with a shoulder injury. Substitute Andy Ryan made an instant impact as he got round McGregor in the right-back area and cut back for Beadling to despatch emphatically. The concern for Celtic now is whether the Norwegian will be fit for Thursday’s Europa League play-off tie with AIK of Sweden, which now takes on huge importance.
For all Jullien’s defensive frailties, the fact he and Nir Bitton had Celtic’s best chances with their heads spoke of Celtic’s sluggish attacking play, which so far this season had been seriously impressive. He nodded wide in stoppage time as Lennon’s side chased a winner, and Bitton hit a post only minutes before.
It was fitting that it was Johnston who initially broke the deadlock after the break given he was the only player who looked to draw Dunfermline defenders out from deep positions with his teasing runs. The 20-year-old’s lack of fervent celebration suggested it was perhaps a cross, but regardless the fact it was either a piece of individual brilliance, or a stroke of luck, was also telling.
Dunfermline were dogged and defended bravely and Beadling showed a clinical edge when it was required. Celtic threw everything at them in extra time, and the blow was so cruel when it came as Forrest’s deflected strike flew beyond the impressive Ryan Scully. Heartbreak for Stevie Crawford and his impressive team and relief for Celtic. But this will do little to dissuade the doubters.
Man of the match – Mikey Johnston
While the Dunfermline backline are due a mention for their resilience, my man of the match goes to Celtic’s Mikey Johnston.
His wonderful long-range strike was pleasing on the eye, but that skill aside, he looked hungry throughout and his work rate never tired. His pace and movement is impressive for a 20-year-old, who’s starting to make a name for himself in this Celtic team. He was in the thick of things for today, and although Celtic made life hard for themselves against the Pars, Johnston never let up.
He created chances and was on the end of plenty of opportunities himself.
- 35AjerSubstituted forNtchamat 76′minutes
- 23Bolingoli-MbomboSubstituted forHayesat 90′minutes
- 19JohnstonSubstituted forMorganat 115′minutes
- 6BittonBooked at 118mins
- 9GriffithsSubstituted forForrestat 56′minutes
- 6AshcroftBooked at 116mins
- 11DowSubstituted forToddat 112′minutes
- 21PatonBooked at 46mins
- 12TurnerSubstituted forColeyat 65′minutes
- 8BeadlingBooked at 114mins
- 24EdwardsSubstituted forRyanat 75′minutesBooked at 120mins
- 15NisbetSubstituted forMcGillat 85′minutes
- John Beaton
- Shots on Target
Foul by Paul Paton (Dunfermline Athletic).
Andy Ryan (Dunfermline Athletic) is shown the yellow card for a bad foul.
Foul by Andy Ryan (Dunfermline Athletic).
Andy Ryan (Dunfermline Athletic) wins a free kick in the defensive half.
Lee Ashcroft (Dunfermline Athletic) is shown the yellow card for a bad foul.
Foul by Lee Ashcroft (Dunfermline Athletic).
Tom Beadling (Dunfermline Athletic) is shown the yellow card for a bad foul.
Foul by Tom Beadling (Dunfermline Athletic).
Substitution, Dunfermline Athletic. Matthew Todd replaces Ryan Dow.
Delay in match because of an injury Ryan Scully (Dunfermline Athletic).
Lee Ashcroft (Dunfermline Athletic) wins a free kick on the left wing.
Lee Ashcroft (Dunfermline Athletic) wins a free kick in the defensive half.