The Rossoneri injury crisis intensified, missing Zlatan Ibrahimovic, Olivier Giroud, Davide Calabria, Simon Kjaer, Tiemoue Bakayoko, Rade Krunic and Junior Messias, so Fode Ballo-Toure got his first start. Venezia brought in Mattia Aramu, with Luca Lezzerini, Ridgeciano Haps, Arnor Sigurdsson, Ethan Ampadu and Luca Fiordilino unavailable.
Pierre Kalulu won possession, burst down the right and had a give and go with Rebic, only for the angled drive to skim the far post.
For all the possession, Milan nearly went behind on the stroke of half-time, as a corner was flicked on and Dor Peretz dived onto it, just grazing the ball from three yards out.
Stefano Pioli made some adjustments and they paid off, finding the breakthrough with a well-worked team goal. Bennacer floated a ball over to the left for Theo Hernandez, who volleyed it across with the inside of his left boot for Brahim Diaz to finish from close range.
Pietro Pellegri made his Rossoneri debut and Maenpaa parried a powerful Theo Hernandez free kick.
The substitutions certainly made the difference for Milan, as two combined for the second goal. Alexis Saelemaekers ran at defenders and rolled a slide-rule pass down the left where Theo Hernandez took a touch and then blasted his angled drive across Maenpaa into the far bottom corner.
Saelemaekers was very lively and saw his own effort palmed over the bar in stoppages.
Milan 2-0 Venezia
Brahim Diaz 68 (M), Theo Hernandez 82 (M)