Porto 3-0 Monaco (kick off 1945 BST)
Goalflashes and major incidents:
93 mins: Full-time. Jose Mourinho has won the European Cup for Porto. He will be leaving, but for now he can enjoy an amazing achievement. The Champions League trophy is going to Portugal.
90 mins: There will be four minutes of added time before Porto can lift the Champions League trophy. They will become the first team since Liverpool in 1976 and 1977 to win the Uefa Cup and Champions League in successive seasons.
84 minutes: Jose Mourinho, who could be the manager of Chelsea or Liverpool next season, makes what looks like his final substitution as the manager of Porto. Professional to the end, it is centre-back Pedro Emanuel he brings on for Deco Souza in a bid to shore up this 3-0 lead.
77 mins: Benni McCarthy replaces Derlei Silva for the European champions-elect, who now have one eye on the record Champions League victory, which belongs to AC Milan from their 4-0 defeat of Barcelona 10 years ago.
74 mins: Goal. Porto 3-0 Monaco.
Porto score again. It's Dimitri Alenitchev this time, the substitute breaking through and thumping a powerful shot past Flavio Roma. Porto will be crowned champions of Europe soon - but their coach Jose Mourinho is just 15 minutes from the end of his career with them.
72 mins: Porto break again, as Monaco's desperation to pour forward leaves big gaps in their defence. Deco Souza is just the man to exploit that space. Porto hold all the aces now, and will surely add the biggest prize in club football to the Uefa Cup which they won last year.
70 mins: Goal. Porto 2-0 Monaco.
Deco Souza scores with a beautiful finish and the European Cup is probably heading back to Portugal with Jose Mourinho now. A three-on-three counter-attack ends with the ball at the feet and he takes his time, picks his spot, and beats Flavio Roma.
63 mins: Monaco make their own substitution, Shabani Nonda coming on for Edouard Cisse. Didier Deschamps has gone to three up front in a bid to chase the game.
61 mins: An offside decision goes against Fernando Morientes, but that will not surprise Monaco. They have been victim of several terrible offside calls during this game. Neutrals might feel they deserve a goal ...
59 mins: Carlos Alberto, the 18-year-old goalscorer, has had his last kick in the European Cup final. Coach Jose Mourinho withdraws him and puts on Dimitri Alenitchev - a more defensive player.
58 mins: The second half looks like being as cagey as the first - Porto will be happy to play at this pace with a goal in the bank and their tight defence to call on, but Monaco need to step up a gear.
47 mins: The game is under way again in Gelsenkirchen.
45 mins: After one minute of injury time, it is half-time at the Arena Auf Schalke. Jose Mourinho will be the happier man - but opposite number Didier Deschamps will feel that his side deserved to be at least level.
42 mins: It emerges that Carlos Alberto was booked for his exuberant goal celebration - but Porto will not be too bothered. They are just a couple of minutes away from taking a priceless lead in at the interval.
38 mins: Goal. Porto 1-0 Monaco.
Carlos Alberto scores with a brilliant, instinctive strike. A cross is not dealt with by the Monaco backline but there looks little danger, yet the 18-year-old Brazilian hooks a shot past Flavio Roma on the spin - his first Champions League goal, and what a time to score it.
33 mins: Porto's best break so far sees Paulo Ferreira get into a good position before crossing for Deco Souza, who is denied by a last-gasp tackle.
28 mins: Referee Kim Nielsen issues his first yellow card of the evening - booking Nuno Valente for a trip on Edouard Cisse.
22 mins: A major blow for Monaco as Ludovic Guily, widely regarded as one of their brightest talents, limps off injured. His replacement is Dado Prso, playing his last game before joining Rangers.
19 mins: Jerome Rothen of Monaco sends over another decent centre but Fernando Morientes - passed fit much to Didier Deschamps' delight - cannot reach it. The two sides are evenly matched but Monaco look slightly the more dangerous.
16 mins: Edouard Cisse of Monaco makes a good burst down the right but his decent cross just eludes Lucas Bernardi.
2 mins: Ludovic Guily gets in behind the Porto defence but goalkeeper Vitor Baia tackles him with his feet, well outside the box. It is a moment of alarm, but Baia times it just right.
1 minute: The game gets started at Arena Auf Schalke in Gelsenkirchen, Germany.
Monaco: Flavio Roma, Hugo Ibarra, Julien Rodriguez, Gael Givet, Patrice Evra, Lucas Bernardi, Andreas Zikos, Edouard Cisse, Jerome Rothen, Ludovic Giuly, Fernando Morientes.
Porto: Vitor Baia, Paulo Ferreira, Jorge Costa, Ricardo Carvalho, Nuno Valente, Francisco Costinha, Maniche Ribeiro, Pedro Mendes, Deco Souza, Derlei
Silva, Carlos Alberto.
Referee: Kim Milton Nielsen (Denmark).