Moussa Dembele's late winner gave Celtic a 1-0 Old Firm victory over Rangers and booked a place in the Scottish League Cup final on Sunday.
A tight clash was settled with three minutes remaining when Dembele stabbed home between the legs of goalkeeper Matt Gilks from a low Leigh Griffiths cross.
Rangers were hugely improved from September's 5-1 thrashing at the hands of their fierce rivals, in which Dembele scored a hat-trick, but still fell to a dramatic defeat.
There was controversy as early as the 15th minute when Barry McKay was booked for simulation after going down in the box under a challenge from Jozo Simunovic.
Rangers goalkeeper Gilks almost gifted Celtic the opener midway through the half when he passed straight to Tom Rogic inside the six-yard box, but the Australian was unable to react quickly enough to score.
Celtic thought they had broken the deadlock five minutes after the restart when Rogic headed home from Scott Sinclair's cross. However, Rogic was adjudged to have fouled Clint Hill in the process.
Gilks was busy in the Rangers goal but, with extra-time looming, there was little he could do about Celtic's winner.
Substitute Griffiths did superbly down the left channel and, when he squared the ball, Dembele's flicked finish from his trailing leg beat Gilks.
The Rangers stopper denied Griffiths a second for Celtic when the forward raced clear on goal and Brendan Rodgers' side held on to book a meeting with Aberdeen in the final on November 27.