Juventus moved up to second in Group A of the Champions League after a hard-fought 3-2 win against Olympiacos this evening.
Claudio Marchisio fired in Juventus's first real effort of the game but his long-range attempt was saved by Roberto after 16 minutes.
The Italian champions had the lead shortly after through Andrea Pirlo when he curled in a free kick to mark his 100th Champions League appearance with the opening goal.
However, the Greek side were back in it three minutes later when Alberto Botia powered in a header.
Juve almost regained the lead when Leonardo Bonucci met Pirlo's delivery, but the defender headed over the bar shortly before the half-hour mark.
However, it was Alvaro Morata who was most guilty of wasting a chance, and the former Real Madrid striker should have done better when he placed wide of the post with only Roberto to beat.
Marchisio then somehow put the ball wide after meeting Kwadwo Asamoah's cross moments before Paul Pogba struck an effort wide at the death of the half.
The roles were reversed in the second period as Olympiacos took the lead before an own goal from goalkeeper Roberto evened things up once more.
Delvin N'Dinga put the visitors ahead on the hour mark, although Roberto had the misfortune of putting through his own net after Fernando Llorente's header hit him after bouncing back off the post on 65 minutes.
Juve then took the lead through Pogba three minutes later when he rifled in a low effort.
Both teams had chances late on but Roberto denied Arturo Vidal from the penalty spot in stoppage time in what was the last meaningful act of the game.