Che non sarebbe stata una partita facile era preventivabile, visto il clima "caldo" del Karaiskakis, ma la Juventus di Massimiliano Allegri ha faticato anche più del previsto contro una squadra che - dopo un brutto primo tempo - ha saputo approfittare del solito calo bianconero nella ripresa. Finisce con un solo punto l'avventura europea dell'Olympiacos, battuto anche questa sera dalle reti di Cuadrado e Bernardeschi, che trova il primo gol della sua carriera in Champions League. Ottavi di finale raggiunti quindi per la Juve, che conclude il girone al secondo posto dietro il Barcellona e davanti all'ostico Sporting Lisbona, che nulla ha potuto contro due formazioni sulla carta più forti.
Per l'ultima partita della sua Champions Lemonis opta per un 4-3-3 più coperto con Tachtsidis che vince il ballottaggio con Fourtonis, completando il centrocampo formato anche da Romao e Odjidja-Ofoe. L'allenatore greco manda in campo un 11 non pienamente corrispondente a quello titolare causa infortuni e necessità di recuperare punti in campionato, mentre il discorso europeo è già matematicamente chiuso. Dall'altra parte Allegri ha le sue gatte da pelare con le assenze: fuori Buffon per un problema al polpaccio e Chiellini causa gastroenterite, tocca quindi a Szczesny in porta e alla coppia Barzagli-Benatia al centro della difesa. Fuori invece per scelta tecnica Pjanic, che lascia il posto in mediana a Khedira e Matuidi. A destra c'è De Sciglio mentre dall'altro lato torna in campo Alex Sandro, davanti invece Douglas Costa ancora titolare al posto di Mandzukic, con accanto Dybala e Cuadrado: unica punta Higuain.
Juve subito attiva fin dal calcio d'inizio, mentre i greci la buttano subito sul gioco duro, chiudendo le fasce e affrontando fisicamente gli avversari. Trova il varco De Sciglio all'ottavo minuto, innescando l'inserimento in area dalla destra di Dybala, che brucia Nikolaou in dribbling e col diagonale mancino trova il miracolo di Proto. La risposta greca arriva dalla distanza, con la conclusione di Odjidja che rimbalza davanti a Szczesny e lo costringe all'intervento in due tempi. La squadra di Allegri sembra poter sfondare soprattutto sulle fasce, dove a destra Dybala va spesso a dare una mano a Cuadrado e De Sciglio creando superiorità numerica e aumentando il divario tecnico con gli esterni avversari, mentre a sinistra Douglas Costa fa il suo e Alex Sandro sembra più in palla: è proprio il brasiliano a scattare perfettamente sul lancio di Matuidi, per poi andare sul fondo e mettere in mezzo sull'inserimento di Cuadrado che a porta spalancata fa 1-0.
Il vantaggio non cambia l'approccio dell'Olympiacos, che continua a rimanere guardingo in attesa di un errore avversario, ma è la Juve ad avere invece l'occasione del raddoppio ancora con Cuadrado: Higuain al limite pesca perfettamente il colombiano e il suo taglio in area di rigore, è l'intervento in uscita di Proto a salvare tutto. E' lo stesso Pipita poi a trovare una bella girata all'interno dei 16 metri, con palla però deviata in calcio d'angolo. La Juve mantiene il possesso palla sembra gestire con tranquillità, anche se al 40' una sanguinosa palla persa da Dybala a centrocampo regala il contropiede all'Olympiacos, con Odjidja-Ofoe che chiama il cross di Pardo, chiuso in angolo da Barzagli: sul successivo corner Nikolaou prolunga di testa verso Djurdjevic la cui incornata è respinta dal grande riflesso di piede di Szczesny. E' l'ultima emozione del primo tempo, che vede le due squadre tornare negli spogliatoi sull'1-0 per la Juventus.
Al ritorno in campo non c'è più Seba tra le file dei padroni di casa, sostituito da Marko Marin, mentre a Juve rientra in campo con gli stessi 11 della prima frazione. Tanti errori in questo inizio di secondo tempo, sopratutto a metà campo entrambe le squadre sembrano in difficoltà. I bianconeri concedono di più rispetto al primo tempo e al 58' è ancora Szczesny a salvare, stavolta sull'inserimento in profondità del neo-entrato Marin. Lemonis cambia ancora con Fortounis al posto di Odjidja, mentre dall'altra parte Pjanic rileva Dybala. Il cambio consente alla Juve di alzare il baricentro e ritrovare un po' di smalto, anche se la squadra di casa adesso ha preso coraggio e sembra lontana dalla passività del primo tempo: al 69' Djurdjgevic innesca il contropiede di Felipe Pardo che si libera sullo scatto di Alex Sandro per poi allungarsi troppo il pallone e far sfumare l'occasione, con Allegri ancora una volta arrabbiatissimo.
L'allenatore bianconero è costretto al secondo cambio a causa di un problema per Barzagli, che deve lasciare il campo a Rugani; cambia ancora anche Lemonis, che inserisce Ben Nabouhane per Djurdjevic. La Juve soffre ancora e al 74' regala una pericolosa punizione dai 25 metri: sul pallone va il nuovo entrato Ben Nabouhane che però spara addosso a Khedira. Pjanic cerca di aprire maggiormente il gioco dei suoi, che però resta molto contratto e non trova grandi possibilità di uscita. Tanta difficoltà nel gestire il possesso e le uniche azioni offensive arrivano da iniziative personali, soprattutto di Douglas Costa che più di una volta si lancia sulla fascia e mette in mezzo dei cross interessanti. Ci prova poi Cuadrado con il destro, deviato e bloccato da Proto.
Proprio quando la Juventus sembra in grado di poter gestire meglio il finale arriva un'occasione colossale per l'Olympacos: cross dalla sinistra di Kurtris, Marin sporca il pallone che arriva sulla testa di Ben Nabouhane e prende un'incredibile traversa a Szczesny battuto. Allegri si gioca anche l'ultima carta con Bernardeschi al posto di Cuadrado, è proprio il nuovo entrato ad impegnare subito Proto dalla distanza, che risponde presente e respinge la conclusione del numero 33. L'ex viola è attivissimo e due minuti dopo trova di nuovo l'azione dalla destra: uno contro uno, dribbling su Koutris e sinistro micidiale all'angolino per il raddoppio. E' l'ultima azione di un match sofferto per la Juve, che porta comunque a casa i tre punti decisivi per la qualificazione, anche se sarebbe arrivata lo stesso visto il risultato di Barcellona.