Rangers 1-2 Celtic
Celtic breathed fresh air into their title challenge with a crucial win over league leaders Rangers at Ibrox.
In a furiously contested encounter, Celtic, showing no ill effects from their Uefa Cup exertions in midweek, drew first blood when Alan Thompson scored from the penalty spot.
John Hartson scored a vital second just before half time but Ronald de Boer pulled a goal back to give Rangers fresh impetus.
But an equaliser was not forthcoming as Celtic's new-look back four kept Rangers in check to give Martin O'Neill his second momentous result in four days.
The game started at a frenetic pace and within two minutes Fernando Ricksen had to thwart Henrik Larsson who found himself in a good position after Hartson had skinned Lorenzo Amoruso.
Then, at the other end, De Boer sent Claudio Caniggia through with a sublime pass, but the Argentine knocked the ball over Rab Douglas and wide of the post when he should have scored.
In five minutes, Amoruso met Ricksen's corner six yards out, but his header was off target.
Celtic suffered an early blow when Douglas was forced off through injury after only nine minutes, with Javier Sanchez Broto replacing the Scottish international keeper.
De Boer missed another glorious opportunity in 14 minutes after the ball broke to him in a crowded area with Broto stranded, the Dutchman dragged his shot wide.
Chances were opening up at both ends and it required a fantastic last-ditch challenge from Craig Moore to prevent Larsson having a clear sight of goal eight yards out.
There was an incredible incident in 27 minutes when Jackie McNamara swung in a free kick from the halfway line that was left by everyone including Stefan Klos and the ball came back off the post before finally being cleared.
But a minute later Celtic took the lead after Amoruso rashly took Hartson down in the area and Thompson coolly slotted the penalty past Klos.
Alan Thompson shows his delight at putting Celtic ahead
Larsson had a curling shot diverted just over the bar by Moore as Celtic stepped up the pressure, with Rangers unable to find any real flow in their game.
Celtic doubled their lead with a sublime goal three minutes before half time. Didier Agathe beat Peter Lovenkrands before cutting the ball back to Larsson who flicked the ball through his legs to Hartson who sidefooted the ball past Klos.
Rangers pushed Celtic back at the start of the second half and Ricksen fired wide after a neat one-two with De Boer before Amoruso again missed the target with a header.
The home side pulled themselves back into the game in 57 minutes when Numan found space to cross and De Boer headed beyond Broto.
Three minutes later Broto had to save from De Boer after Agathe headed weakly into his path.
Larsson flashed a header just wide after 70 minutes and moments later forced Klos to save, with Celtic still looking well capable of adding to their tally.
The German keeper denied the Swede again with 15 minutes left with an incredible stop after Larsson had once again found space in the box.
Agathe was only inches away from adding to Celtic's lead with five minutes to go with a long-range drive as the visitors finished the game in threatening style.
Rangers: Klos, Ricksen, Moore, Amoruso, Numan,
Caniggia (McCann 72), Ferguson, Konterman (Arteta 45),
Lovenkrands (Thompson 83), De Boer, Mols.
Subs Not Used: McGregor, Ross.
Booked: Lovenkrands, Moore, De Boer.
Celtic: Douglas (Broto 9), Valgaeren, Balde, Larsson, Agathe,
McNamara, Lennon, Thompson, Sutton, Hartson (Petrov 66),
Subs Not Used: Maloney, Smith, Crainey.
Booked: Agathe, Hartson, Sutton, Broto.
Ref: H Dallas