La Liga de Campeones de la UEFA 1998-99 fue la 44.ª edición en la historia de la competición. Se disputó entre julio de 1998 y mayo de 1999, con la participación inicial de 56 equipos, representantes de 47 federaciones nacionales diferentes.
La final, a partido único, tuvo lugar el 26 de mayo de 1999 en el Camp Nou de Barcelona, en España, y en ella se enfrentaron el Bayern Múnich y el Manchester United. Venció el equipo inglés, 31 años después de su último título, en un encuentro trepidante en el que remontó en el descuento el tanto inicial del club muniqués, cambiando el signo del partido de forma radical. Se da la circunstancia que por primera vez ninguno de los finalistas ganó en la temporada anterior sus respectivas ligas nacionales ni la Copa de Europa, hecho debido a la ampliación de participación a los subcampeones de las mejores ligas europeas, además de convertirse el conjunto inglés en el primer equipo de aquel país en lograr el triplete (liga, copa y champions) en una temporada.
El Bayern Múnich fue superior durante el encuentro; sin embargo, no tuvo fortuna para aumentar el 1-0 y fue remontado por el Manchester United en dos lanzamientos de córner, ambos en tiempo de descuento.
El veterano Lothar Matthaus estaba ante su última oportunidad de ser campeón de Europa, pero, tras ser sustituido, el Manchester United remontó el encuentro en los últimos minutos y privó al centrocampista alemán de su ansiada Copa de Europa y este quedó incrédulo por la forma de perder de su equipo. Compañeros suyos como Oliver Kahn y Thomas Linke se derrumbaron en el césped tras el pitido final y tuvieron que ser consolados por el árbitro, Pierluigi Collina. El defensa Samuel Kuffour, tras encajar el segundo gol de los ingleses, rompió a llorar incluso antes de que terminara el encuentro.
Rondas previas de clasificación Primera ronda previa El sorteo se realizó el 6 de julio de 1998 en Ginebra.
Los partidos se disputaron el 22 y 29 de julio de 1998.
Equipo Local IdaResultadoEquipo Visitante IdaIdaVueltaValletta FC 0 - 8 Anorthosis 0 - 2 0 - 6Celtic Glasgow 2 - 0 St Patrick's Athletic FC 0 - 0 2 - 0Dinamo Tbilisi 4 - 3 KS Vllaznia 3 - 0 1 - 3FK Sileks Kratovo 1 - 2 Club Brugge 0 - 0 1 - 2 Grasshopper-Club Zürich 8 - 0 Jeunesse Esch 6 - 0 2 - 0Skonto Riga 2 - 1 FC Dinamo Minsk 0 - 0 2 - 1Zimbru Chişinău 2 - 3 Újpest FC 1 - 0 1 - 3PFC Litex Lovech 3 - 2 Halmstads BK 2 - 0 1 - 2Cliftonville FC 1 - 13 MFK Košice 1 - 5 0 - 8FK Obilić 4 - 1 IB Vestmannaeyja 2 - 0 2 - 1ŁKS Łódź 7 - 2 FK Gäncä 4 - 1 3 - 1Steaua de Bucarest 5 - 4 FC Flora 4 - 1 1 - 3 Dinamo de Kiev 10 - 1 Barry Town FC 8 - 0 2 - 1Kareda Šiauliai 0 - 4 NK Maribor 0 - 3 0 - 1HJK Helsinki 5 - 0 FC Yerevan 2 - 0 3 - 0Beitar Jerusalén 5 - 1 B36 Tórshavn 4 - 1 1 - 0 Nota: El partido de ida entre el Dinamo Tbilisi y el KS Vllaznia terminó 1-0, pero se anuló por alineación indebida de este último y se le dio por perdido por 3-0.
Segunda ronda previa El sorteo se realizó el 6 de julio de 1998 en Ginebra.
Los partidos se disputaron el 12 y 26 de agosto de 1998.
Equipo Local IdaResultadoEquipo Visitante IdaIdaVueltaOlympiacos 6 - 3 Anorthosis 2 - 1 4 - 2Celtic 1 - 3 Croatia Zagreb 1 - 0 0 - 3Dinamo Tbilisi 2 - 2 (v.) Athletic Club 2 - 1 0 - 1Rosenborg (v.) 4 - 4 Brujas 2 - 0 2 - 4Galatasaray 5 - 3 Grasshopper 2 - 1 3 - 2Internazionale 7 - 1 Skonto 4 - 0 3 - 1Sturm Graz 7 - 2 Újpest Dózsa 4 - 0 3 - 2 Litex Lovech 2 - 11 Spartak de Moscú 0 - 5 2 - 6MFK Košice 1 - 2 Brøndby IF 0 - 2 1 - 0Bayern Múnich 5 - 1 FK Obilić 4 - 0 1 - 1Manchester United 2 - 0 ŁKS Łódź 2 - 0 0 - 0 Steaua de Bucarest 5 - 8 Panathinaikos 2 - 2 3 - 6Dinamo de Kiev (p.) 1 - 1 Sparta Praga 0 - 1 1 - 0Maribor 3 - 5 PSV Eindhoven 2 - 1 1 - 4HJK Helsinki 2 - 1 Metz 1 - 0 1 - 1Benfica 8 - 4 Beitar Jerusalén 6 - 0 2 - 4
Primera ronda El sorteo se realizó el 27 de agosto de 1998 en Mónaco.
Grupo A
Jor.FechaEstadioLocalVisitanteResultado1 16 de septiembre Das Antas Porto Olympiacos ||align=center| 2–21 16 de septiembre Maksimir Stadium Croatia Zagreb Ajax Ámsterdam 0–0 |- |2 || 30 de septiembre || Estadio Olímpico || Olympiacos Croatia Zagreb 2–02 30 de septiembre Amsterdam Arena Ajax Ámsterdam || Porto ||align=center| 2–1 |- |3 || 21 de octubre || Das Antas || Porto || Croatia Zagreb ||align=center| 3–0 |-bgcolor=#D0E7FF |3 || 21 de octubre || Estadio Olímpico || Olympiacos || Ajax Ámsterdam ||align=center| 1–0 |- |4 || 4 de noviembre || Maksimir Stadium || Croatia Zagreb || Porto ||align=center| 3–1 |-bgcolor=#D0E7FF |4 || 4 de noviembre || Amsterdam Arena || Ajax Ámsterdam || Olympiacos ||align=center| 2–0 |- |5 || 25 de noviembre || Estadio Olímpico || Olympiacos || Porto ||align=center| 2–1 |-bgcolor=#D0E7FF |5 || 25 de noviembre || Amsterdam Arena || Ajax Ámsterdam || Croatia Zagreb ||align=center| 0–1 |- |6 || 9 de diciembre || Das Antas || Porto || Ajax Ámsterdam ||align=center| 3–0 |-bgcolor=#D0E7FF |6 || 9 de diciembre || Maksimir Stadium || Croatia Zagreb || Olympiacos ||align=center| 1–1
Grupo B
Jor.FechaEstadioLocalVisitanteResultado1 16 de septiembre San Mamés Athletic Bilbao Rosenborg 1–1 |-bgcolor=#D0E7FF |1 || 16 de septiembre || Stadio delle Alpi || Juventus || Galatasaray ||align=center| 2–22 30 de septiembre Lerkendal Rosenborg Juventus 1–1 |-bgcolor=#D0E7FF |2 || 30 de septiembre || Ali Sami Yen || Galatasaray || Athletic Bilbao ||align=center| 2–1 |- |3 || 21 de octubre || San Mamés || Athletic Bilbao || Juventus ||align=center| 0–03 21 de octubre Lerkendal Rosenborg Galatasaray 3–04 4 de noviembre Stadio delle Alpi Juventus Athletic Bilbao 1–1 |-bgcolor=#D0E7FF |4 || 4 de noviembre || Ali Sami Yen || Galatasaray || Rosenborg ||align=center| 3–0 |- |5 || 25 de noviembre || Lerkendal || Rosenborg || Athletic Bilbao ||align=center| 2–1 |-bgcolor=#D0E7FF |5 || 2 de diciembre|| Ali Sami Yen || Galatasaray || Juventus ||align=center| 1–1 |- |6 || 9 de diciembre || San Mamés || Athletic Bilbao || Galatasaray ||align=center| 1–0 |-bgcolor=#D0E7FF |6 || 9 de diciembre || Stadio delle Alpi || Juventus''' Rosenborg 2–0
Grupo C
Jor.FechaEstadioLocalVisitanteResultado1 16 de septiembre Ramón Sánchez PizjuánEl Real Madrid disputó su primer partido europeo de la temporada como local en el Estadio Ramón Sánchez Pizjuán de Sevilla, en cumplimiento de la sanción que le fue impuesta por la UEFA, por los disturbios ocasionados por sus hinchas, que provocó la caída de una sus porterías, en el último partido que disputó en su estadio. Real Madrid Internazionale 2–01 16 de septiembre Arnold Schwarzenegger-Stadium Sturm Graz Spartak Moscú 0–22 30 de septiembre Stadio Giuseppe Meazza Internazionale Sturm Graz 1–02 30 de septiembre Estadio Olímpico Luzhniki Spartak Moscú Real Madrid 2–13 21 de octubre Santiago Bernabéu Real Madrid Sturm Graz 6–13 21 de octubre Stadio Giuseppe Meazza Internazionale Spartak Moscú 2–14 4 de noviembre Arnold Schwarzenegger-Stadium Sturm Graz Real Madrid 1–54 4 de noviembre Estadio Olímpico Luzhniki Spartak Moscú Internazionale 1–1 |- |5 || 25 de noviembre || Stadio Giuseppe Meazza || Internazionale || Real Madrid ||align=center| 3–1 |-bgcolor=#D0E7FF |5 || 25 de noviembre || Estadio Olímpico Luzhniki || Spartak Moscú || Sturm Graz ||align=center| 0–06 9 de diciembre Santiago Bernabéu Real Madrid Spartak Moscú 2–16 9 de diciembre Terminator-Stadium Sturm Graz Internazionale 0–2
Grupo D
Jor.FechaEstadioLocalVisitanteResultado1 16 de septiembre Estadio Brøndby Brøndby IF Bayern Múnich 2–11 16 de septiembre Old Trafford Manchester United Barcelona 3–3 |- |2 || 30 de septiembre || Olímpico de Múnich || Bayern Múnich || Manchester United ||align=center| 2–22 30 de septiembre Camp Nou Barcelona Brøndby IF 2–03 21 de octubre Estadio Brøndby Brøndby IF Manchester United 2–63 21 de octubre Olímpico de Múnich Bayern Múnich Barcelona 1–04 4 de noviembre Old Trafford Manchester United Brøndby IF 5–04 4 de noviembre Camp Nou Barcelona Bayern Múnich 1–25 25 de noviembre Olímpico de Múnich Bayern Múnich Brøndby IF 2–05 25 de noviembre Camp Nou Barcelona Manchester United 3–3 |- |6 || 9 de diciembre || Estadio Brøndby || Brøndby IF || Barcelona ||align=center| 0–2 |-bgcolor=#D0E7FF |6 || 9 de diciembre || Old Trafford || Manchester United || Bayern Múnich ||align=center| 1–1
Grupo E
Jor.FechaEstadioLocalVisitanteResultado1 16 de septiembre Stade Félix Bollaert Racing Lens Arsenal 1–1 |-bgcolor=#D0E7FF |1 || 16 de septiembre || Apostolos Nikolaidis || Panathinaikos || Dinamo Kiev ||align=center| 2–1 |- |2 || 30 de septiembre || Highbury || Arsenal || Panathinaikos ||align=center| 2–1 |-bgcolor=#D0E7FF |2 || 30 de septiembre || Lobanovsky Stadium || Dinamo Kiev || Racing Lens ||align=center| 1–13 21 de octubre Stade Félix Bollaert Racing Lens Panathinaikos 1–03 21 de octubre Highbury Arsenal Dinamo Kiev 1–1 |- |4 || 4 de noviembre || Apostolos Nikolaidis || Panathinaikos || Racing Lens ||align=center| 1–0 |-bgcolor=#D0E7FF |4 || 4 de noviembre || Lobanovsky Stadium || Dinamo Kiev || Arsenal ||align=center| 3–1 |- |5 || 25 de noviembre || Highbury || Arsenal || Racing Lens ||align=center| 0–1 |-bgcolor=#D0E7FF |5 || 25 de noviembre || Lobanovsky Stadium || Dinamo Kiev || Panathinaikos ||align=center| 2–1 |- |6 || 9 de diciembre || Stade Félix Bollaert || Racing Lens || Dinamo Kiev ||align=center| 1–3 |-bgcolor=#D0E7FF |6 || 9 de diciembre || Apostolos Nikolaidis || Panathinaikos || Arsenal''' 1–3
Grupo F
Jor.FechaEstadioLocalVisitanteResultado1 16 de septiembre Philips Stadion PSV Eindhoven HJK Helsinki 2–11 16 de septiembre Fritz-Walter-Stadion Kaiserslautern Benfica 1–02 30 de septiembre Olímpico de Helsinki HJK Helsinki Kaiserslautern 0–0 |-bgcolor=#D0E7FF |2 || 30 de septiembre || Estádio da Luz || Benfica || PSV Eindhoven ||align=center| 2–1 |- |3 || 21 de octubre || Philips Stadion || PSV Eindhoven || Kaiserslautern ||align=center| 1–2 |-bgcolor=#D0E7FF |3 || 21 de octubre || Olímpico de Helsinki || HJK Helsinki || Benfica ||align=center| 2–0 |- |4 || 4 de noviembre || Fritz-Walter-Stadion || Kaiserslautern || PSV Eindhoven ||align=center| 3–1 |-bgcolor=#D0E7FF |4 || 4 de noviembre || Estádio da Luz || Benfica || HJK Helsinki ||align=center| 2–25 25 de noviembre Olímpico de Helsinki HJK Helsinki PSV Eindhoven 1–35 25 de noviembre Estádio da Luz Benfica Kaiserslautern 2–16 9 de diciembre Philips Stadion PSV Eindhoven Benfica 2–2 |-bgcolor=#D0E7FF |6 || 9 de diciembre || Fritz-Walter-Stadion || Kaiserslautern''' HJK Helsinki 5–2
Mejores segundos
Segunda fase Los ocho equipos clasificados disputaron una serie de eliminatorias a ida y vuelta, hasta decidir los dos equipos clasificados para la final de Barcelona. En la tabla se muestran todos los cruces de la segunda fase. El primer equipo de cada eliminatoria jugó como local el partido de ida, y el segundo jugó en su campo la vuelta. En los resultados se indica el marcador en la ida, seguido del de la vuelta. La eliminatoria de cuartos de final fue disputada por los campeones de los seis grupos y los dos mejores segundos de grupo. No se enfrentaron equipos que hubiesen coincidido en un mismo grupo, así como tampoco lo hicieron entre ellos los dos segundos de grupo, los cuales disputaron la ida como locales. Fue sorteada el 16 de diciembre de 1998 en Ginebra. Las semifinales se sortearon el 19 de marzo de 1999 en Ginebra. La final fue disputada por el Bayern de Múnich y el Manchester United, el cual a la postre fue el campeón.
Final