Claudio Pizarro scored two second half goals as the Germans launched a stunning second half comeback to send the UEFA Cup favorites crashing out.
Bremen have been struggling mightily for wins recently, but they were boosted by the return from suspension of Torsten Frings. First choice goalkeeper Tim Wiese is suffering from a muscle tear in his thigh and was not able to play, while Jurica Vranjes was left out of the squad.
Bremen started strongly, and Claudio Pizarro smashed a good shot wide from outside the box, while Alexandros Tziolis also fired off-target.
On six minutes the Germans really threatened the Milan goal, as Mesut Ozil carved open the defence and forced a smart stop out of Nelson Dida.
It was all Bremen in the early stages, and Diego teed up Claudio Pizarro, who brought out another tough stop from Dida.
Milan had their first effort on 11 minutes through Pato, but the teenager's shot was weak. Massimo Ambrosini also headed wide from a David Beckham cross.
Diego was looking dangerous for the Germans, and he cut inside from the flank, but again shot straight at Dida. Tizolis played a neat one-two with Hugo Almeida, but his finish was wayward. Dida was a very busy man in the Milan goal, and on 20 minutes he was again called into action to gather Naldo's strike.
Milan finally started to raise their game midway through the half, and Pato set-up Beckham to shoot wide. Minutes later Milan were ahead, as Beckham's shot was blocked by Frings' hand, and the referee awarded a penalty. Andrea Pirlo stepped up to calmly dispatch the ball to the left of goalkeeper Christian Vander.
The home side were lucky to be ahead, but on 33 minutes they rubbed salt into Bremen's wound by doubling their lead. Pato grabbed the goal with a super-strike into the top corner, following good work by Paolo Maldini.
Bremen tried to hit back with Almeida's header, but Dida was again his equal. Ozil also shot wide from distance, while Dida produced yet another excellent stop from Per Mertesacker's header.
Milan almost delivered another sucker punch just before half time, as Pirlo fed Clarence Seedorf on the counter, but Vander tipped away the Dutchman's powerful drive.
Bremen came flying out of the blocks, as Diego hit a venomous shot that deflected just wide of Zambrotta.
Milan received a blow on 53 minutes, as Seedorf picked up an injury to his neck, and had to be replaced by Mathieu Flamini.
The home side started to control possession, but on 63 minutes they were handed a warning blow as Pizarro fired in a rocket of a shot that Zambrotta did well to get in the way of.
Milan did not heed this warning, and minutes later Bremen were back in the tie, as Pizarro headed past Dida from Diego's free kick. Another goal now for the Bundesliga outfit would see them go through on away goals.
The Germans continued to attack as Milan tired, and incredibly they found the crucial second goal with 11 minutes remaining. Again Pizarro was the hero, as he pumped home another header. Milan now needed a goal, or they were out.
Still Bremen came forward, and substitute Boenisch fired over, as Milan seemed out of ideas.
Replacement Andriy Shevcheno attempted to conjure something up, as he lashed just past the post, while down the other end Ozil was denied a penalty after going down in the box.
Diego could have ended the tie, as he was denied by Dida, but it did not matter as the game finished 2-2.
Milan, the tournament favorites, crash out of the UEFA Cup in incredible circumstances, and coach Carlo Ancelotti is sure to be under huge pressure now to explain this debacle.
Werder Bremen: Vander; Fritz, Mertesacker, Naldo, Pasanen (Boenisch 65); Frings, Tziolis, Ozil (Jensen 91); Diego; Hugo Almeida (Rosenberg 62), Pizarro
Pirlo 26 pen (M)
Pato 33 (M)
Pizarro 68 (W)
Pizarro 79 (W)