The win moves Nopoli to while Milan remain third, ahead of the remaining midweek fixtures on Wednesday and Thursday.
Nikola Ninkovic, Leonardo Pavoletti and a Juraj Kucka own goal ended 10-man AC Milan's chances of going top of Serie A after crashing 3-0 to Genoa on Tuesday.
Milan travelled to the Luigi Ferraris buoyed by a weekend victory over Juventus that closed the gap on the Italian champions and Serie A leaders to just two points.
But Genoa had won the last two editions of this fixture 1-0 and by the end fully deserved what was just their fourth win of the season.
It moved them up to seventh, six points off the lead, while Milan remain third, ahead of the remaining midweek fixtures on Wednesday and Thursday.
Injuries in defence forced Milan coach Vincenzo Montella to turn midfielder Andrea Poli into a makeshift right-back, while Keisuke Honda was given his first start of the season in midfield.
It took Genoa just 11 minutes to find a way past Gianluigi Donnarumma. Ninkovic, on his first start for the club, rushed in to meet Tomas Rincon's chip with a diving header that beat Milan's teenage goalkeeper.
Milan defender Alessio Romagnoli produced the visitors' best chance of the half when he unleashed a drive that flashed just wide of the near post, while M'Baye Niang's volley from Carlos Bacca's knock-down flew over.
Milan's chances of launching an unlikely fightback collapsed 10 minutes after the restart when Gabriel Paletta lunged with both feet at Luca Rigoni.
The veteran defender made little contact with the Genoa forward, but the referee immediately produced a red card.
When Rigoni fired low into the area 10 minutes from the end, Kucka stuck his leg out to deflect the ball past Donnarumma as Pavoletti lingered.
Six minutes later Pavoletti got his name on the scoresheet with a fine curling strike from the edge of the area after turning Romagnoli inside out.