After a conservative first half from both sides, Stephan El Shaarawy opened the scoring in the 50th minute with a surging run and finish, only for Daniele Galloppa to drill home the equaliser for the hosts midway through the second period.
The Rossoneri could not find another goal as they were forced to settle for the draw, leaving them in ninth place, six points off the pace of early league leaders Juventus.
Bojan Krkic was chosen ahead of Giampaolo Pazzini to partner El Shaarawy in attack, while Kevin-Prince Boateng returned from suspension to line up just behind the forwards.
Both sides struggled to establish a rhythm in the opening exchanges, though Boateng’s shot from the edge of the area on 14 minutes required a safe pair of hands from Antonio Mirante.
The Parma keeper was forced to work much harder by Boateng moments later, as he got down low to make a fantastic stop off a header by the Ghanaian from Ignazio Abate’s cross.
The hosts then had a penalty appeal turned down, after Cristian Zapata’s challenge on Alessandro Lucarelli inside the area was deemed legitimate, following a scramble to defend a corner.
The match was shaping up to be a conservative contest, with both sides adopting a pragmatic rather than penetrative approach to their attacking play as the first half wore on.
However, Sotiris Ninis nearly broke the monotony with a slide-rule pass to set up Dorlan Pabon in a good position, but the Colombian’s strike was fisted away from danger by Christian Abbiati.
That sparked a flurry of activity to end the first half. A fine piece of dribbling from El Shaarawy took him past two Parma defenders, but he could not pick out the lurking Bojan with his cross.
The Spanish striker then curled a beautiful strike inches over the crossbar moments later from just outside the box, moments before Ninis drilled just off target with the last kick of the half.
It was a rejuvenated Milan side that emerged from the interval, and five minutes after the restart, they stormed into the lead. Bojan fed El Shaarawy on the run, and the in-form striker raced past his marker and buried confidently under Mirante.
The Rossoneri should have been further ahead two minutes later, after a clipped ball from Bojan caught Parma by surprise, leaving Boateng alone against Mirante, but he somehow headed wide when it would have been easier to hit the target.
Milan nearly paid for their profligacy within moments, as they switched off at the back when defending a cross. Massimo Gobbi seemed set to turn home at the far post, but Mario Yepes recovered just in time to block him on the goal-line.
But the home side would find a way through in the 66th minute, as Galloppa smashed home a low drive from outside the box after a neat lay-off from a set-piece.
The stage was set for a grandstand finish, and Mirante was twice called upon to keep Parma in the game. The keeper first thwarted El Shaarawy from range, before pushing a stinging free-kick from Riccardo Montolivo around the post.
However, that was about as close as Milan would get to a winner, and Parma successfully thwarted them for the remainder of the match to claim a deserved point.