The big game on Matchday 34 was Juventus vs AC Milan, third and second, respectively, in the Serie A standings.
The two teams approached the match with different moods. While the Bianconeri recently gained access to the Italian Cup final, the Rossoneri suffered two heavy defeats, the first in the UEFA Europa League semifinal against AS Roma and the second in the championship derby which saw rival FC Internazionale celebrating the conquest of the Scudetto ahead of time right in front of the Rossoneri fans.
Juve coach Massimiliano Allegri deployed a 3-5-2, focusing on the attacking duo of Kenan Yildiz and Dusan Vlahovic while Federico Chiesa was initially left on the bench.
Coach Stefano Pioli had to do without the suspended Davide Calabria, Fikayo Tomori and Theo Hernandez as well as the starting goalkeeper Mike Maignan who suffered a muscle strain in the warm-up just before the start of the match. So Marco Sportiello played in goal, his fourth match of the championship.
The match started at a slow pace as both teams tried to gain possession of the ball without exposing themselves to any counterattacks and without showing too much aggression in their pressing.
The first shot on goal came from Vlahovic who had to turn to finish, but his shot was easily blocked.
Then defender Federico Gatti found a space between the defense and midfield lines of the visiting team. So he was able to advance without too much pressure but his long-range shot was inaccurate.
Soon thereafter, Rafael Leao looked for space to cross the ball towards his attacking partners, but came up empty. He also tried to shake his marker by changing position to the central area. He received a pass, turned and shot but it went wide.
Alessandro Florenzi took a corner for Milan Matteo Gabbia's header ended wide of the goal.
Neither team's attackers were incisive and were also poorly served by teammates.
Just before halftime, Vlahovic come close to giving Juve the lead with an astute shot from a free kick but Sportiello made a clean save.
Juventus held the ball for a long time to open the secon half while the visiting team sat back looking to trigger the speed of their attacking wingers Leao and Christian Pulisic on the counter.
In the 50th minute there was a double chance for the Bianconeri. First, a powerful and sudden shot from Filip Kostic that Sportiello did well to save. The Milan goalkeeper left the rebound, but he reacted quickly to reject an attempt at a tap-in by defender Danilo.
AC Milan maintained control of possession after that, but did not find any openings.
After the first hour of play, both coaches inserted fresh resources.
Federico Chiesa and Arkadiusz Milik entered for Juventus, replacing Kostic and Vlahovic. The latter showed that he did not appreciate this change.
Algerian midfielder Ismael Bennacer came on for AC Milan in place of Yacine Adli.
Shortly afterwards, Olivier Giroud suffered a muscle problem following a challenge and was replaced by Noah Okafor.
Chiesa immediately became the protagonist, dribbling past Yunus Musah before crossing into the penalty area where Milik rose above Florenzi and headed well only to see Sportiello cleverly block the shot.
Immediately afterwards, Leao tried to break the deadlock with an individual play, gaining entry into the penalty area and taking a curling shot that was deflected by an opposing defender.
In the final minutes, the Bianconeri tried with greater insistence to take the lead. In the 86th minute, Milan defender Malick Thiaw made a timely save on the goal line.
With this draw, AC Milan remained 5 points clear of Juventus who was unable to extend the gap with pursuers Bologna, Roma and Atalanta.