The hosts rallied hard in the second half but two late goals for the visitors after Mario Balotelli's leveller condemned Clarence Seedorf's men to another loss
Ex-Milan forward Antonio Cassano scored in both halves for Parma after the hosts had goalkeeper Christian Abbiati was sent off for fouling Ezequiel Schelotto in the penalty area in the fifth minute.
But 2-0 down with less than 40 minutes to play, Milan fought back, as Adil Rami headed in a corner before Mario Balotelli converted from the penalty spot to draw his side level.
Parity lasted less than two minutes though, with substitute Amauri flicking in as Parma's bid for a European place gathered pace with their 16th league game without defeat and fifth Serie A road win in a row, sealed by Jonathan Biabiany's late header.
Parma's win was masterminded by coach Roberto Donadoni, who won six league titles and three European Cups in two spells as a player at Milan.
Milan were bundled out of the Champions League's last 16 on Tuesday, slumping to a 4-1 second-leg loss at Atletico Madrid that saw them beaten 5-1 on aggregate.
And in response to four losses in their last five matches, Milan supporters protested outside San Siro before the match, directing most of their anger at chief executive Adriano Galliani and Balotelli.
The visitors made the most of the unrest surrounding the hosts with a fast start, as Cassano's ball released Schelotto, and Abbiati charged off his line to foul the Inter loanee.
Michael Essien was sacrificed by Seedorf, with back-up keeper Marco Amelia coming off the bench, but he had no answers for Cassano's powerful spot kick.
With faint hopes of making Italy's World Cup squad perhaps spurring him on, Cassano was a constant threat for the visitors, again shooting wide, before Balotelli flicked into the foot of the right post after Kaka's header as the Rossoneri sought a response.
Parma continued to control proceedings though, as Afriyie Acquah and Cassano had further attempts on goal, and Amelia had to make a great reaction save after Philippe Mexes nearly turned a cross in.
Already booked, Mexes was lucky to stay on the pitch after a late lunge on Felipe just before the interval, but when play resumed Cassano scored again.
Acquah got to the byline and picked Cassano out, who took a touch to avoid the attention of Nigel de Jong before lashing past Amelia and into the bottom-left corner for his 11th league goal of the campaign.
Milan breathed life into an unlikely comeback just five minutes later as an excellent Kaka corner was headed in by Rami at the far post, and Balotelli followed up with a spot kick after Joel Obi fouled Riccardo Montolivo.
The visitors would have the last laugh though, as Schelotto's cross from the right was turned in by Amauri and Biabiany nodded in from close range in the last minute of stoppage time.
Parma's first win over Milan at San Siro this century keeps them within a point of fourth-placed Inter - whom they hold a game in hand over.