Hernani opened the scoring in the first half and Jasmin Kurtic doubled the lead early in the second before Theo Hernandez inspired the comeback with a brace.
The match began negatively for the Rossoneri as Matteo Gabbia had to be taken off the field with a knee injury after he was fouled by Parma striker Andreas Cornelius and he was replaced by Pierre Kalulu.
It got worse in the 13th minute when Gervinho beat Kalulu on the left-wing and crossed for Hernani, who made a run into the box and stroked the ball into the net.
The goal sparked AC Milan into action and they thought that they had equalised when Samu Castillejo put the ball into the back of the net but the goal was disallowed for offside. Parma kept soaking up the pressure and counterattacked whenever the opportunities came while Castillejo tried to get an equaliser that would stand but his long-range shot went off target.
AC Milan were denied twice by the frame of the goal in a matter of seconds: Brahim Diaz curled a shot onto the crossbar and Hakan Calhanoglu also hit the bar with the rebound. The Turkish international also hit the post with a free-kick in injury time.
When the second half commenced, the Rossoneri continued their search for an equaliser, and unfortunately for them, Calhanoglu hit the crossbar.
Against the run of play, Parma went 2-0 up when Hernani chased the ball on the right-wing and Kurtic ran in to score with header, which Milan goalkeeper Gianluigi Donnarumma had trouble keeping out despite getting contact.
The Rossoneri quickly pulled a goal back after Calhanoglu took a corner from the right and Theo Hernandez headed the ball into the back of the net. Soon after, the Turkish midfielder took another free-kick but the ball went straight into the arms of Ducali goalkeeper Luigi Sepe.
Calhanoglu took another shot from outside of the box and Sepe made a fine save from the Milan midfielder. Parma midfielder Gaston Brugman got a free-kick at the other end but Donnarumma made a routine save.
AC Milan got a deserved equaliser when Rebic had his shot saved by Sepe but Theo Hernandez had enough time and space to strike the rebound into the net.
The Rossoneri still remain unbeaten after 11 rounds of the 2020/21 Serie A season, though this was the closest that run has come to ending.