Rosenborg 2, Celtic 0 (full-time)
Rosenborg's Harald Brattbakk came back to haunt his former side Celtic, in the Champions League.
He scored two in the first half and almost certainly destroyed Martin O'Neill's hopes of qualifying for the second group stages.
Celtic are one point behind Porto and five adrift of Juventus - who come to Parkhead next week in the final must-win game.
All talk before the game surrounded Celtic's big striking guns Henrik Larsson and Chris Sutton, and whether they would recover from illnesses.
They did make it, but the saga took the spotlight away from Brattbakk, who even won his side a penalty which Robert Douglas saved from Bent Skammelsrud.
Brattbakk could have hurt his former team-mates as early as the 17th minute after Balde failed to clear, but he snatched at the chance and blazed his volley wide from close range.
He put the Norwegians in front in the 19th minute. Janne Saarinen's long ball was headed down by Sigurd Rushfeldt and the Norwegian striker fired low and into the bottom corner from 25 yards.
Didier Agathe again got away from Saarinen in the 25th minute, but Celtic were unable to capitalise as Erik Hoftun made a vital tackle with Sutton waiting to pounce at the back post.
Nothing was going right for O'Neill's men and Stilian Petrov was booked for trying to stop Rosenborg from taking a quick free-kick after Johan Mjallby fouled Rushfeldt. But it looked as though more goals would come and Robert Douglas had to save Roar Strand's stinging long-range shot at the second attempt.
Celtic, however, fell further behind in the 36th minute and it was Brattbakk again who made them pay. Berg got away from Neil Lennon before passing to Rushfeldt whose shot was saved by Douglas, but the striker coolly took his time before picking his spot from 12 yards.
Things could have got even worse for Celtic in the 43rd minute, but for the heroics of Douglas. Balde was adjudged to have fouled Brattbakk in the box, but the keeper dived to his right to brilliantly save Skammelsrud's penalty.
Larsson had a glorious opportunity to pull his side back into the game just two minutes after the restart. Arason failed to collect Petrov's free-kick and the ball fell to the Swede with his back to goal, but he screwed his effort wide with the keeper struggling to make up the ground.
The Rosenborg man made amends in the 48th minute when he came out to claim Agathe's cross with Sutton lurking with intent.
Larsson then went agonisingly close to scoring in the 63rd minute when Agathe picked him out in the box and he headed against the upright.
Sutton then squandered a glorious chance two minutes later when he headed Thompson's cross into the side netting from close range before substitute Lubo Moravcik fired wide from a free-kick.