Alexandre Pato and Robinho had given Milan a 2-0 lead, but Viktoria Plzen snatched a point with the last kick of the game.
The Rossoneri rotated the squad, aware second place behind Barcelona was confirmed regardless of the results in this last round of games. Czech side Viktoria needed a point to be sure of third place and a spot in the Europa League, though simply BATE Borisov’s defeat at Barcelona would be enough.
Philippe Mexes and Mattia De Sciglio received their first starts in a Milan jersey. As expected, the home side had a very aggressive start, as Mexes and De Sciglio both got crucial touches to take a cross away from the two strikers in the middle of the box.
Mexes forced another corner at full stretch to anticipate Bakos, while from that set piece a spectacular Pilar volley sailed inches over the bar with Marco Amelia well beaten.
Petrzela was flagged offside in a very tight decision and Viktoria lost Jiracek to an injury after 28 minutes.
De Sciglio was not lacking in confidence, unleashing a fierce strike that was over from distance.
Neither was full-back Rajtoral, who went on a spectacular run from his one end of the pitch to the other, eventually forcing a save out of Amelia with his low angled drive.
Clarence Seedorf also drilled off target from the D, but Pilar broke away from De Sciglio to fire just wide of the near post with only Amelia to beat, then Cisovsky’s header was past the upright. Antonio Nocerino also went off, making way for Thiago Silva in a more advanced midfield role.
Milan took the lead with their first genuine scoring opportunity straight after the restart. Robinho chested down a cross from the right for Alexandre Pato, who took it past his marker and dribbled round the goalkeeper to deposit into an empty net.
Less than a minute later, it was 2-0. A long Taye Taiwo clearance was flicked on by Robinho, who had time and space to exchange passes with Pato to tear apart the remaining shreds of the Viktoria defence and pass it under the bar.
Massimiliano Allegri’s half-time talk must’ve had a great effect, as Milan were a totally different team to the sluggish, apathetic side of the first 45 minutes. Pato threatened a third when he went on the counter and cracked a shot against the base of the upright.
Viktoria had the ball in the net, but it didn’t get them back into the game. Petrzela skipped past Taiwo and beat Amelia at the near post with a daisy-cutter that thumped the woodwork, but when Kolar tapped into an empty net, he was offside.
Seedorf tested Cech from distance, but the Viktoria fans were celebrating, as BATE Borisov conceded a spate of goals in Barcelona, meaning third place was secure anyway. Amelia fingertipped a Rajtoral effort on to the side-netting and 16-year-old Bryan Christante received his Champions League debut.
There was action at both ends in quick succession, as first Pato tried to lob the goalkeeper and only hit his chest, then on the counter Bakos hit the post.
Viktoria did get their deserved goal in the final minute, as Bakos rolled across the six-yard box for Bystron’s tap-in, as the Milan defence was caught out.
The home side desperately wanted an equaliser, if only for pride, and goalkeeper Cech went up for the final free kick, but Amelia just about scrambled it away.
The Czechs kept pushing and drew level deep into stoppages to send the fans wild in Prague. Daniele Bonera’s poor clearance allowed Cisovsky to prod it into Duris’ path and the substitute took his chance quickly from eight yards.
Viktoria 2-2 Milan
Scorers: Pato 47 (M), Robinho 48 (M), Bystron 89 (V), Duris 93 (V)
Viktoria Plzen: Cech; Rajtoral, Bystron, Cisovsky, Limbersky; Jiracek (Darida 28), Horvath; Petrzela, Kolar (Duris 67), Pilar (Hora 84); Bakos
Milan: Amelia; De Sciglio, Mexes, Bonera, Taiwo (Zambrotta 90); Emanuelson, Ambrosini, Nocerino (Thiago Silva 40); Seedorf; Robinho (Christante 81), Pato
Ref: Vad (Hun)
Tickets for the Champions League final between Juventus and Real Madrid are still on sale with reseller Viagogo - Click to find out more