It is the second Milan team that Udinese has knocked out, after eliminating Inter two weeks ago. Next up is a two-legged tie against Fiorentina or second-division side Siena.
Milan was booed off the pitch at full time by the home fans, who also jeered the players during the match.
"We played a very good game tonight as we did against Inter," Udinese midfielder Silvan Widmer said. "Everyone worked hard and we gave everything.
"Maybe we were a bit nervous at the beginning but after the goal we started playing the ball and moving around well."
Milan got off to a perfect start when an unmarked Mario Balotelli slotted home Valter Birsa's low cross after Robinho had fooled the Udinese players by leaping over the ball.
However, Urby Emanuelson gave away a penalty with a clumsy foul on Widmer shortly before halftime and Luis Muriel fired in under the diving body of Milan goalkeeper Christian Abbiati.
Substitute Nicolas Lopez, who had only been on the pitch three minutes, won the match in the 78th. The Uruguayan ran most of the length of the pitch without any Milan player attempting to put in a tackle, before drilling into the bottom right corner.
Balotelli had almost scored a second minutes earlier with a powerful free kick which Zeljko Brkic did well to save.
Seedorf retired from playing and took charge of Milan last week after Massimiliano Allegri's dismissal. A late Balotelli penalty saw Milan beat Hellas Verona 1-0 in the league.
"Miracles don't happen, it's not that a win had changed everything," Seedorf said. "There's work to do. Today I saw some very positive things and others that we have to work on. But these are things that happen with time.
"The situation isn't good but we need to stay calm and that's why I'm here."
Udinese beat AC Milan 2-1 in Italian Cup quarters
Advertisement