A four-minute burst done the damage on the half hour mark, and Ottmar Hitzfeld's side never really recovered despite pushing the Rossoneri in the second half.
Seedorf scored in the 27th minute when he received a pass on the edge of the Bayern area from Kaka and showed great footwork to neatly take the ball past two challenges and shoot between Daniel Van Buyten's legs into the bottom right-hand corner.
The Dutchman - the only player to have won the Champions League three times with as many clubs - then turned provider as he flicked on an Andrea Pirlo pass to free Inzaghi through the middle. The Italian did what he does best against Bayern and fired his sixth goal in five appearances against the Germans in the competition past a helpless Kahn! There was a hint of offside about the goal, but it was marginal and did not take away from the confidence with which Inzaghi hammered the ball home, especially following his earlier lack of composure on the ball.
Up to that point proceedings had been rather cagey, Bayern going closest to opening the scoring after eight minutes through Christian Lell. A Mark Van Bommel ball to the far post was driven into the ground by the 22-year-old and the shot had Dida beaten.
Massimo Oddo was well-positioned on the line to clear and Inzaghi then spurned a glorious opportunity to open the scoring at the other end. A Paolo Maldini dink over the top was miscontrolled in a situation that has so often seen the Milanese striker take a touch and finish with aplomb.
Lukas Podolski had a shot saved at close range by Dida, and Inzaghi fluffed a header after a good frist-time cross from Marek Jankulovski before the flurry of action on the half hour mark produced Milan's goals.
With Bayern dazed following their Italian opponents mercenary streak, Podolski had the only remaining chance of the half as he failed to get a toe on a tantalising free-kick into the goalmouth, and it remained 2-0 to the visitors going into half time. Bayern pushed Milan in the second half, and the impressive Lell almost created a goal for Hasan Salihamidzic ten minutes after the restart when he curled a delightful ball to the far post that Oddo managed to turn behind.
Van Bommel tested Dida with some fierce shots and the Dutch midfielder, alongside Lell, was the most impressive of the Bayern players in his application and determination. Milan defended resolutely to keep the home side out though, and Claudio Pizarro headed straight at Milan 'keeper Dida with ten minutes remaining in what was one of their better chances of the half.
Van Bommel had yet another shot tipped around the post as full time approached, but Bayern lacked the thrust that was required to really push Milan to the limit and time eventually ran out for the German side.
Bayern Munich coach Ottmar Hitzfeld:
"It's a very big disappointment.
"We got a 2-2 draw in Milan and we had great hope that we would advance. But we always knew that Milan can win away from home.
"We were unlucky not to score first. It may have been different then.
"They got a lot of confidence from those two goals and they have great players. We tried everything and we went out fighting, but Milan was clearly the better team."
AC Milan midfielder Clarence Seedorf:
"I am delighted we have qualified and even more so that I scored.
"We have taken a step towards the final but Manchester United know us well."
Bayern Munich: Kahn, Salihamidzic, Lucio, Van Buyten, Lahm, Ottl (Santa Cruz 46), Hargreaves, Van Bommel, Lell (Gorlitz 77), Makaay (Pizarro 61), Podolski.
Subs Not Used: Rensing, Karimi, Ismael.
Booked: Van Bommel, Salihamidzic.
AC Milan: Dida, Oddo, Nesta, Maldini, Jankulovski, Gattuso (Cafu 87), Pirlo, Ambrosini, Seedorf (Gourcuff 80), Kaka, Inzaghi (Serginho 70).
Subs Not Used: Kalac, Kaladze, Oliveira, Bonera.
Goals: Seedorf 27, Inzaghi 31.