The club had an emotional send-off after the game with the San Siro faithful. After the game, Filippo Inzaghi, Gennaro Gattuso, Alessandro Nesta, Gianluca Zambrotta and Clarence Seedorf all seemed to wave to the crowd for the last time.
Now with the club going into the close season with only one trophy, the Supercoppa Italiana, Milan looks set for some rebuilding. Milan has already signed Riccardo Montolivo and Bakaye Traore to man the midfield and bring the club's average age down. They have also re-signed Massimo Ambrosini for one more year.
However, before we can go forward, we must look back at the past season. Here is a look at Milan's players over the course of 2011-12 and how they fared.
Christian Abbiati established himself in the Milan goal this season. The Italian featured 31 times and only conceded 26 goals during the Serie A season. That's obviously less than a goal per game.
Abbiati kept the Rossoneri in several games this season as the defense opened up without Thiago Silva towards the end of the season. It was his excellent goalkeeping that kept Milan's title bid going until the penultimate match of the season. Abbiati's saves against Bologna were not only brilliant but extremely timely as the club hung on to their slim title hopes.
Abbiati's backup, Marco Amelia, proved less capable in between the posts. Amelia played seven times in the league and gave up seven goals. His goals-conceded ratio was obviously worse than Abbiati's, but Amelia has continually been Milan's backup since arriving from Genoa in 2010.
This season the Italian saw his most action for the club, but in doing so, he showed he isn't of the same quality as the man he backs up.
Thiago Silva proved to be Milan's best defender and possibly their best player this season. However, the Brazilian didn't play the last nine matches of the season after suffering a thigh injury in March. Silva still played 27 times in the league and only picked up two yellow cards—one of his best stats of the year. Not often does a centre-back play 27 times and have such a fantastic disciplinary record.
But outside of Silva, the rest of the club's centre-backs were not quite up to the task.
Alessandro Nesta was in and out with injury but still played 16 times. He came up big at the end of the campaign, but considering he's 36 years old, it is definitely time the club moves on.
Philippe Mexes was hailed by some when he arrived at the club last summer, while others derided the Frenchman. During much of the season, Mexes shared time with Nesta, and after an atrocious match against Fiorentina that helped cost Milan the Scudetto, Mexes was benched in favour of Daniele Bonera.
Bonera wasn't too bad this season, especially after he proved his worth in the Champions League against Barcelona. Unfortunately, like Mario Yepes, he is not the stopper that Silva is.
However, both are capable backups and can fill in admirably. Yepes, much like Nesta, is 36, and his abilities as a centre-back are fading. He will most likely leave in the close season, yet his departure won't be as publicized as the others.
Despite the club being solid at right-back with Ignazio Abate manning the right side, the left-back position remained a difficult spot for the club to shore up in 2011-12.
Milan began the season with new signing Taye Taiwo as first choice; however, the former Marseille player quickly fell out of favour and was loaned to English side Queens Park Rangers in January. Due to Taiwo's inability to gel with the Milan team, two old heads were brought back into the team.
Luca Antonini was fantastic for much of the season, and could be called Milan's most improved defender. The Italian featured 21 times during the season but was injured for the last few weeks.
During that time and much of the year, veteran Gianluca Zambrotta deputised in the left-back or right-back positions to cover for injured personnel. That was when he wasn't hurt himself. The veteran, who most likely played his last match for the club against Novara, was adequate in his role with the club. However, his age continued to show at times of the season, lacking the legs to keep up with the quicker attackers in the league.
Abate had another solid season for the Rossoneri, and he wasn't even a defender when he broke into the first team. Thanks to manager Massimiliano Allegri, Abate learned how to defend and is one of the top full-backs in Serie A.
His 29 appearances in Serie A were good enough for third most on the team and showed not only his high fitness levels but also his importance to the team.
Djamel Mesbah was signed in January from Lecce, and some believed he would fill Milan's left-back hole. Unfortunately, he never fulfilled those expectations. Compared to the rest of the options at full-back, he didn't quite look Milan quality.
Finally, the club gave youngster Mattia De Sciglio a few run outs this season. At 19 years old, it was fantastic to see the club give the young Italian a chance. He showed promise but could use a loan spell at another Serie A club next season to get more first team experience.
Kevin-Prince Boateng was primed to be one of the best attacking midfielders in Europe at the start of the year. Unfortunately for both Boateng and Milan, that didn't happen. Boateng only featured 20 times in the league, though he did contribute to nine goals. He just seemed to be hurt every time Milan had an important match.
He did pop up with one of Milan's most important Serie A goals when he got the winner against Genoa to keep the club in the title hunt. His Champions League goal against Arsenal was also one of the best goals of the season and will be played on highlight shows for years to come.
The combination of Massimo Ambrosini and Mark van Bommel were both good during the season, yet their good form came and went at different times of the year. Ambrosini improved as the year went on, and it was Milan's Champions League run that brought the best out in the Italian.
However, he showed large signs of fatigue in late March as the fixtures piled up. Van Bommel on the other hand, has already left the club for PSV Eindhoven. The Dutchman was an important part of Milan's 2010 Scudetto. Yet, this season his role was diminished due to his fitness. The latter part of the term saw Ambrosini feature more than his teammate, and considering the Dutchman is 35 years old, the club made a good move by allowing van Bommel to leave.
Veteran playmaker Clarence Seedorf had his highs and lows during 2011-12. His influence wasn't as much of a factor in the team as in years past, and unlike in the past, his passing abilities seemed to elude him on occasion. Add in that his legs are nearly gone and you have a footballer whose time it may be to be put out to pasture. There's no doubting he has been a great servant for the club and would make a great advisor or coach behind the scenes.
Dutchman Urby Emanuelson, like the others, had his moments. But inconsistency kept the midfielder in and out of the lineup. Allegri and company have also tried to teach the Dutchman how to play in the trequartista position. Originally a left-back, Emanuelson still needs time to learn the position, but 30 games and five assists this season is a good start for the midfielder.
Antonio Nocerino was possibly the best signing in all of Europe last summer. Though his form faded after the club's Champions League elimination, the club as a whole dipped, and he was still one of the most important players in a Milan shirt. The midfielder notched 10 goals in 35 league matches during the season, but it's questionable if Nocerino can duplicate those statistics this season.
It's hard to critique veteran Gennaro Gattuso, Alexander Merkel, Rodney Strasser and Mathieu Flamini due to three of them being injured for nearly all the season with Milan. Meanwhile, Strasser returned to Milan from loan in January and only featured as a substitute.
Alberto Aquilani, on loan from Liverpool, started the season very brightly. Unfortunately, as has been the case with Aquilani in recent years, he just couldn't stay fit for the entire season. He did manage 23 appearances—10 less than with Juventus the season before— and contributed six assists from the left side of the club's three-man midfield.
Many of those assists came in the first half of the season, and once the Italian returned to the first team in March, he looked very rusty. Milan and Aquilani are still hopeful of working out a new deal to bring the midfielder to the club permanently but at a knockdown price.
Sulley Muntari joined the club in January from cross-stadium rivals Inter and made an immediate impact. In all honesty, the Ghanaian would be a fantastic permanent signing despite his limited skill set. He isn't the best tackler or passer; however, he makes up for that with his attitude and desire on the pitch.
He scored a couple of key goals down the stretch for the club, including his laser-beam strike against Chievo—and he got what should have been the winner against Juventus. (The goal wasn't given, and the game ended level and possibly cost Milan the title.)
Maxi Lopez is another player that came in during January, but unlike Muntari, Lopez was rarely used. He did score one goal in eight appearances, though he should have had a higher tally. The club is already negotiating a knockdown price for the Argentine, and though he won't see a lot of action, he will be a good backup when needed.
Zlatan Ibrahimovic had his best output in his Serie A career in 2011-12: 28 goals in 32 games. Yet, that still wasn't enough for the Rossoneri to claim its second-straight Scudetto.
The club played even more through the big Swede during this season, and when he was in the lineup, Ibrahimovic was plan A, B and C. He had a fantastic season, but his goal tally showed how reliant the club is on the striker.
Despite winning the scoring title, his form and attitude dipped following the club's exit from the Champions League. Watching the team's games down the stretch, Ibrahimovic just looked uninterested in several of the matches.
His strike partner, Robinho, was a bit of an enigma throughout the season. He had several good matches, but for every good match, he had three or four bad games. The Brazilian's return of six goals in 26 league games is extremely poor, and it shows the striker has never fulfilled his potential since moving to Milan—or anywhere else.
The club truly missed Antonio Cassano throughout the season while he was recovering from heart surgery. Upon his return, he showcased all of the cutting edge-passing that the club missed for large parts of the season. With the Italian in the squad for an entire season, it's easy to believe Ibrahimovic may have had 30-plus goals on the year.
Stephan El Shaarawy emerged as a top player for years to come. His position hasn't been defined just yet, and it hasn't been decided whether he'll be a striker or a trequartista. Regardless, he proved he will be a fantastic attacking option.
El Shaarawy played 22 times during the season, adding two goals in the league and another two in the Italian Cup. He was held back a bit by Allegri due to his young age, and next season should see the attacker get more time.
Two strikers that didn't see much time for the club during the season were the often-injured Alexandre Pato and Filippo Inzaghi.
Inzaghi, at 38, played his last season with the club and even scored in the club's last game of the season. It proved to be the Italian's only goal in seven league appearances during the season, and it was a fantastic way for Inzaghi to go out.
Pato, on the other hand, spent most of his season on the trainer's table. He did, however, begin the year brightly as a substitute in the Italian Super Cup. But the Brazilian just couldn't stay fit, playing only 11 matches and scoring one goal during that time—his worst output since arriving in Italy and possibly the reason the club should move him out this summer.
Follow Drew Farmer on Twitter @calciofarmer. He also writes for ForzaItalianfootball.com.