Juventus arrived at San Siro full of confidence and intent on controlling possession, working the ball well in advanced areas but struggling to produce the final pass. Milan’s defence remained organised throughout the opening stages, limiting the Bianconeri to very few clear opportunities, as the first half-hour was largely dominated by midfield battles with little goalmouth action.
The game finally sparked into life in the closing stages of the first half. In the 34th minute, Michele Di Gregorio produced an excellent save to deny Adrien Rabiot from close range. Three minutes later, Juventus thought they had broken the deadlock when Chico Conceicao’s cross-shot from the right found Khephren Thuram in the box, but the goal was ruled out for offside.
Conceicao continued to threaten in the final minutes before the break. Manuel Locatelli delivered an excellent switch of play that found the Portuguese winger, who controlled the ball first time, beat his marker and drove into the penalty area, only to be denied by the Milan goalkeeper.
Juventus’ number seven had another opportunity in stoppage time, but Mike Maignan was once again equal to the task, saving his left-footed effort as the teams went into half-time level at 0-0.
Milan created the first major chance of the second half in the 50th minute when Alexis Saelemaekers struck the crossbar, giving Juventus a warning sign. The visitors responded nine minutes later as Andrea Cambiaso surged down the left, latched onto a through ball from Lloyd Kelly and fired an effort just over the bar.

The tempo remained high as both managers turned to their benches in search of fresh legs and a breakthrough.
Juventus came close again in the 85th minute when Jonathan David flicked on Pierre Kalulu’s cross inside the area, but his effort drifted wide of the far post. It proved to be the final chance of the match, as the encounter at San Siro ended in a goalless draw.
