Il Borussia Dortmund di Jürgen Klopp viene inserito nel Gruppo D insieme a Real Madrid, Ajax e Manchester City. Nella partita di debutto, i tedeschi vincono per 1-0 in casa contro l'Ajax[1], prima di pareggiare per 1-1 in trasferta contro il Manchester City[2]; nel doppio confronto con il Real Madrid arrivano una vittoria interna per 2-1[3] ed un pareggio esterno per 2-2[4]. Il girone si completa con due trionfi, quello in trasferta per 4-1 a discapito degli olandesi[5] e quello casalingo per 1-0 contro gli inglesi[6], che sanciscono il primo posto in classifica con 14 punti conquistati, frutto appunto di quattro successi e due pari. Negli ottavi di finale vengono sorteggiati gli ucraini dello Šachtar, battuti con un risultato complessivo di 5-2 tra andata, pareggio per 2-2 in trasferta[7], e ritorno, vinto per 3-0 in casa[8]. Nella partita d'andata è stato inoltre osservato un minuto di silenzio per commemorare le cinque vittime dell'incidente aereo che trasportava i tifosi del Borussia.[9] Ai quarti gli spagnoli del Málaga, alla prima partecipazione nel torneo,[10] vengono eliminati con un aggregato totale di 3-2 nella doppia sfida, determinato dal pareggio esterno per 0-0 all'andata[11] e dal successo interno per 3-2 al ritorno[12]. In semifinale affrontano un'altra squadra spagnola, il Real Madrid, già affrontato nella fase a gironi, che viene estromesso dalla competizione con un risultato complessivo di 4-3, frutto della vittoria per 4-1 a Dortmund grazie alla quaterna di Robert Lewandowski[13], il quale realizza tra l'altro il record di gol segnati da un singolo giocatore in una semifinale della manifestazione[14], e della sconfitta per 2-0 a Madrid[15]. I Gialloneri raggiungono così la loro seconda finale di Champions League, a distanza di sedici anni dall'ultima disputata.
Il Bayern Monaco di Jupp Heynckes, finalista della precedente edizione, viene inserito nel Gruppo F insieme a Valencia, BATĖ Borisov e Lille. Nell'incontro d'esordio, i tedeschi battono il Valencia per 2-1 in casa[16], prima di essere sconfitti in trasferta dal BATĖ Borisov per 3-1[17]; nella doppia sfida con il Lilla arrivano una vittoria esterna per 1-0[18] e un trionfo interno per 6-1[19]. Il girone si chiude con un pareggio in trasferta per 1-1 con gli spagnoli[20] ed un successo casalingo per 4-1 ai danni dei bielorussi[21], che determinano il primo posto in classifica con 13 punti conquistati, a pari merito col Valencia ma con gli scontri diretti a favore, derivanti appunto da quattro vittorie, un pari e una sconfitta. Negli ottavi di finale vengono sorteggiati gli inglesi dell'Arsenal, superati grazie alla regola dei gol in trasferta sul punteggio totale di 3-3, in virtù del successo esterno per 3-1[22] e della sconfitta interna per 2-0[23]. Ai quarti gli italiani della Juventus vengono eliminati con un risultato complessivo di 4-0 tra andata e ritorno, vincendo entrambe le partite per 2-0[24][25]. In semifinale affrontano gli spagnoli del Barcellona, battendoli con un aggregato totale di 7-0 nel doppio confronto, trionfando sia all'andata a Monaco di Baviera per 4-0 (che ha rappresentato per sette anni la peggiore sconfitta nella competizione per i catalani)[26], sia al ritorno a Barcellona per 3-0.[27] I bavaresi agguantano così la loro seconda finale consecutiva di Champions League, nonché decima in totale, dopo la sconfitta dell'anno passato.
La prima occasione della gara è appannaggio del Borussia Dortmund con un destro a giro da fuori area di Lewandowski, che trova l'ottima opposizione di Neuer. I Gialloneri continuano a spingere in avanti e sfiorano il vantaggio per altre tre volte: con un destro di prima intenzione di Błaszczykowski; un'incursione centrale di Reus e un tiro dal limite di Bender, tutti neutralizzati dai rispettivi interventi di Neuer. Il Bayern Monaco riesce a rendersi pericoloso con un colpo di testa di Mandžukić, respinto da Weidenfeller, e con due conclusioni ravvicinate di Robben che, presentatosi ambo le volte a tu per tu col portiere del Dortmund, lo centra in pieno senza trovare lo specchio della porta. Il primo tempo si chiude dunque a reti inviolate, con entrambe le formazioni che vanno vicine al gol.
Nella seconda frazione di gioco è il Bayern a partire meglio, chiamando Weidenfeller ad una gran parata sul colpo di testa di Mandžukić, avvenuto sugli sviluppi di un calcio d'angolo. È lo stesso attaccante croato a trovare comunque il gol dell'1-0 al 60', insaccando in rete da pochi passi dopo essere stato servito da Robben, quest'ultimo autore di un'ottima incursione centrale. Dopo otto minuti, l'arbitro Rizzoli concede un calcio di rigore al Dortmund per via di un intervento scomposto di Dante ai danni di Reus: dal dischetto Gündoğan supera Neuer con freddezza, fissando il risultato sull'1-1. Dopo un tiro dalla distanza di Hummels, terminato al di sopra della traversa, i bavaresi hanno una grandissima occasione per tornare avanti con Müller, che, dopo aver dribblato Weidenfeller in uscita, conclude a porta sguarnita, trovando però la repentina chiusura di Subotić, il quale anticipa anche la ribattuta di Robben salvando incredibilmente il tiro sulla linea. Il Bayern, approfittando anche di un leggero calo degli avversari, sfiora per altre due volte il sorpasso, rispettivamente con un sinistro dalla distanza di Alaba e un destro dal limite di Schweinsteiger, prontamente respinti da un attento Weidenfeller. Proprio quando sembra che la partita debba risolversi ai tempi supplementari, arriva la rete del 2-1 di Robben che, smarcato da un colpo di tacco di Ribéry, supera il portiere del Dortmund con un tocco morbido in diagonale di sinistro. La partita termina dunque con la vittoria in extremis dei bavaresi, che si aggiudicano il loro quinto trofeo nella massima manifestazione continentale[29].