Both teams sat back in the opening stages before Milan gradually started dominating possession. However, neither team found the net in the first half despite several chances for the visitors.
"I think our first half was decent, the second was not up to our standards so that we could’ve done much more," Milan manager Stefano Pioli told DAZN.
"We were unable to create enough attacking situations, Cremonese focused entirely on defending and closed down all the spaces, but we still could’ve done far better."
Milan midfielder Brahim Diaz tried to slide in a cross from Junior Messias after 23 minutes, but the ball sailed over the bar.
Milan had another chance two minutes later, but winger Ante Rebic miscalculated his attempt to head the ball and it bounced wide.
A minute later, Rebic played through Divock Origi but Cremonese goalkeeper Marco Carnesecchi managed to save the Belgian striker's effort with his legs.
Milan continued the pressure in the second half, with Origi being denied a goal in the 56th minute after he was ruled offside by VAR.
Rebic came close again to giving Milan the lead with a header after 68 minutes, but Carnesecchi managed to tip the ball away.
Cremonese could have snatched victory four minutes into stoppage time when home striker Cristian Buonaiuto got the ball inside the box, but his shot under pressure went straight into the arms of goalkeeper Ciprian Tatarusanu.
Milan are second in the standings with 30 points from 14 games, eight adrift of leaders Napoli.
"It’s a lot, we certainly don’t like this situation, but we have an opportunity to win on Sunday and then there’s a long campaign ahead of us. Naturally, we didn’t want to be this far off at this stage. We congratulate Napoli on their record, but we could’ve done more," Pioli said.
Cremonese are 18th on seven points.