Only a stoppage-time penalty from substitute Jeremy Menez spared Milan’s blushes by rescuing a point from a thrilling 3-3 draw at San Siro.
Goals from Luca Paganini and Oliver Kragl had given the relegation battlers a shock 2-0 lead and, following half-time, Mario Balotelli missed the chance to drag Milan back into contention when his penalty was saved.
Carlos Bacca did produce an overdue reply for the hosts, only for Federico Dionisi to extend Frosinone’s advantage.
However, Luca Antonelli inspired Milan with an acrobatic goal and then, two minutes into time added on, fellow substitute Menez levelled from the spot.
The point was not enough to keep Sassuolo, 1-0 winners over Hellas Verona thanks to Lorenzo Pellegrini’s 58th-minute goal, from usurping Milan and moving into the final Europa League berth.
Frosinone, meanwhile, are four points from safety with only two games left, with Palermo looking more likely to scramble to safety following their convincing 2-0 home victory over Sampdoria.
A first-half goal from Franco Vazquez and Nenad Krsticic’s late own goal saw Davide Ballardini’s men draw level on 35 points with 17th-placed Carpi.
Last year’s Serie B champions had earlier in the day succumbed to 2015-16 champions Juventus in Turin.
Hernanes, the Brazilian playmaker signed from Inter back in August, scored his first Bianconeri goal before the break and sub Simone Zaza made it 2-0 with a second-half header.
Elsewhere, Daniele Croce had a goal ruled out as Empoli were held 0-0 by Bologna.