Parma put a dent in AC Milan's hopes of qualifying for next season's Champions League after club captain Bruno Alves scored a superb curling free-kick to secure his side a deserved 1-1 draw at Ennio Tardini.
The Rossoneri went into the game having ended a four-match winless run with a 1-0 victory over Lazio a week earlier but they laboured throughout a first half in which Parma should have taken the lead.
Samu Castillejo made the hosts rue their missed opportunities when he scored what looked like the winner three minutes after coming off the bench but Milan failed to hold out for a smash-and-grab triumph as Parma's determination paid off.
Alves' 87th-minute equaliser was unstoppable and left Milan with a record of one win from their past six matches - hardly the form of a top-four side heading into the final weeks of the season.
Parma put Milan on the back foot early on and Gianluigi Donnarumma slid out to dispossess Fabio Ceravolo with a challenge the referee deemed well-timed despite Parma's insistence he brought the striker down.
Juraj Kucka almost lit up a cagey first half with a moment of brilliance but his acrobatic overhead kick flashed wide of Donnarumma's goal after a looping cross from Marcello Gazzola evaded the Milan defence.
With chances hard to come by, Milan could ill-afford the kind of wastefulness Andrea Conti displayed when he scuffed a close-range shot well wide with the goal at his mercy early in the second half.
Gattuso sent on Castillejo for Conti after 66 minutes and was rewarded shortly after when the Spaniard met Suso's cross from the right with a near-post header that flashed across the face of Luigi Sepe's goal and into the far corner of the net.
Parma substitute Luca Siligardi rounded Donnarumma but failed to find the angle as he shot on the turn, hitting the foot of the post with the goalkeeper beaten, while Patrick Cutrone rightly had a goal ruled out to make it 2-0.
Kucka sent a dipping drive over the crossbar from the edge of the box in the last 10 minutes, and Milan's frustration grew when Fabio Borini felled Mattia Sprocati on the edge of the box and Alves sent the ensuing free-kick curling just inside the near post from 25 yards to the delight of the home supporters.
What does it mean? Milan look set to slide
Milan are being chased down by three teams, with Roma, Atalanta and Lazio all within four points of catching them in Serie A, while Parma are seven points clear of the relegation zone.
Ceravolo a constant threat
Parma refused to sit back and play for a draw, instead feeding Ceravolo throughout a game in which Milan struggled to contain the 32-year-old target man.
Conti caught napping
A goal just after half-time would have settled Milan's nerves but Conti's reactions let him down and he was left kicking thin air before Gattuso hauled him off.
Key Opta Facts
- No defender has scored more direct free-kick goals than Bruno Alves in the top-five European leagues in 2018-19 (2).
- Gennaro Gattuso has gained his 100th point as a coach in Serie A.
- In each of the last eight Serie A matches between Parma and Milan, both teams have found the net – 34 goals in total.
- Suso provided an assist after not having been involved in any goals in his last 10 games played in the league.
- Alessio Romagnoli is the player who made the most passes during the match: 65, at least 27 more than any other.
Parma will go to Chievo in confident mood after three unbeaten matches, while Milan need to improve when they face Lazio in the Coppa Italia semi-final second leg on Wednesday, with the tie locked at 0-0.
19. Mai 2019
|Ponga scores stunning double as Knights thrash Dragons|
|Kompany thanks Guardiola and Manchester City team-mates after announcing departure|
|Kompany leaving Manchester City after 11 years|
|Breazeale feels referee stopped Wilder fight too early|
|Green playing ´unbelievably well´, says Kerr|
|Astros get 10th straight win with defeat of Red Sox|
|Warriors´ Iguodala to undergo MRI as Finals beckon|
|Three takeaways from Golden State´s comeback win over Portland|
|Wilder asks for patience over Joshua fight|
|Warriors on verge of NBA Finals after trumping Trail Blazers|
|Wilder retains title with first-round knockout of Breazeale|
|MLS Review: Rooney scores in DC defeat, Wondolowski breaks record|
|Larson wins $1m NASCAR All-Star Race after qualifying in Open|
|Nurse wants Raptors to ´play their a** off´ and change series|
|My last great moment at Allianz Arena – Ribery revels in Bundesliga triumph|
|Eagles defensive end Long announces retirement|
|Ribery, Robben shaped Bayern & Bundesliga – Kovac|
|Favre left disappointed after Dortmund miss out on title|
|Sancho targets Bundesliga glory with Dortmund next season|
|Koepka has no doubts he´ll win US PGA Championship|
|Johnson looking for ´some help´ from Koepka|
|History awaits as Koepka takes record seven-shot lead at US PGA|
|Of course I will be here – Cavani wants to stay at PSG|
|Saunders targets ´big names´ after becoming two-weight world champion|
|Kane stars as USA close on quarter-final berth|
|Lyon president Aulas urges PSG to make Ndombele move|
|Sylvinho, Juninho to join Lyon as coach and sporting director|
|Dupichot and Zebo grab hat-tricks as Racing 92 rout Perpignan|
|Sensational Inoue hammers Rodriguez to win IBF bantamweight belt|
|Do not steal goals, Raheem! Sterling offers explanation for Pep-talk|
|Ouch! Djokovic embarrassed after accidentally hitting ball boy|
|Ronaldo pays tribute to departing Allegri|
|We need to score that chance - Gracia rues Pereyra miss in City humbling|
|Benfica crush Santa Clara to clinch title and pass 100-goals mark|
|Derby strikes and play-off failings – Wondolowski´s MLS goals record in Opta numbers|
18. Mai 2019
|Goal-shy Piatek must focus on Milan - Gattuso|
|There is a score there for me - McIlroy pleased with improved display|
|Guardiola: Man City treble feat harder than Champions League but can be repeated|
|Djokovic edges out Schwartzman to set up Nadal final|
|Koepka still well clear despite slight Bethpage wobble|
|Paris Saint-Germain 4 Dijon 0: Mbappe closes on Messi with brace|
|Guardiola fumes at payment question after FA Cup win|
|Stormers hold Crusaders to dramatic draw after Lions win thriller|
|Mentally I was done – De Bruyne on injury nightmare|
|Sterling denied FA Cup final hat-trick as Jesus awarded Man City´s second goal|
|Guardiola demands improvement from treble-winning Manchester City|
|Madness – Sterling astonished by De Bruyne´s FA Cup cameo|
|Take another look at Manchester City´s sensational six FA Cup final goals|
|Man City treble: Are Guardiola´s men the best team of the Premier League era?|
|Chiefs finish top as Saints edge out Quins for fourth|
|Runaway leader Koepka starts round three at Bethpage|
|Bundesliga 2018-19: Jadon Sancho – Dortmund´s golden boy in numbers|
|Hegerberg hat-trick earns Lyon sixth Women´s Champions League title|
|Magician David Silva makes treble-winning history for Manchester City|
|Man City are the best team in the world - Kompany|
|Man City treble: Five unsung moments in Guardiola´s domestic clean sweep|
|Manchester City 6 Watford 0: Sterling double helps secure unprecedented domestic treble|
|Catalans crush Warriors at Camp Nou in front of record crowd|
|Pliskova beats Sakkari in Rome repeat, Konta upsets Bertens|
|Valencia clinch Champions League qualification on final day|
|Kovac ´convinced´ he will be Bayern Munich boss next season|
|MotoGP Raceweek: Marquez will be ´safer´ in Le Mans race|
|Ewan sprints home to end Giro wait|
|Leinster gut out Munster win to set up Warriors final|
|Bundesliga 2018-19: Dortmund excite but still no match for transitioning Bayern|
|Nadal gets revenge on Tsitsipas to reach Rome final|
|Bundesliga 2018-19: How Bayern beat Dortmund to the title|
|FA Cup final: Man City bench Aguero against Watford|
|Borussia Monchengladbach 0 Borussia Dortmund 2: Three points not enough for runners-up|
|Bayern Munich 5 Eintracht Frankfurt 1: Robben and Ribery strike to seal seventh consecutive Bundesli|