Milan sink lowly Siena at San Siro
Nocerino opened the scoring nine minutes after the break with a deflected shot from the edge of the box before Sweden striker Ibrahimovic doubled Milan's lead on 63 minutes following a controversial penalty award.
Milan coach Massimiliano Allegri said it was not one of his side's better performances.
"When you play badly and win it's a good sign," he told Italy's Sky Sport channel. "We had to be patient in the first half and almost fell behind. In these games, either you finish them off quickly or you need the energy to fight until the end."
In Florence, an acrobatic strike two minutes from time from Stevan Jovetic earned Fiorentina a 2-2 draw against Atalanta.
Italy striker Alberto Gilardino gave the hosts the lead on nine minutes, skilfully volleying home Juan Vargas's centre for only his second goal of the season.
But just as it looked as though Fiorentina would bank a much-needed three points, midfielder Andrea Masiello fired home a 25-metre equaliser on 81 minutes before Argentina striker German Denis struck a typical poacher's goal at the back post to give Atalanta the lead with four minutes to go.
Montenegrin striker Jovetic saved new coach Delio Rossi's blushes on 88 minutes, volleying in superbly.
The point leaves Fiorentina struggling on 17, the same as Atalanta, who were docked six points at the start of the campaign.
"We lost the midfield in the second half and we weren't able to close the game out," said Fiorentina coach Delio Rossi. "[Valon] Behrami almost made it 2-0 but then we made mistakes. It was a hard and intense match."
With Taye Taiwo and Philippe Mexes drafted into an injury-hit defence, the hosts began the game on the front foot with Ibrahimovic making a nuisance of himself inside the box before volleying fractionally over on 16 minutes.
Milan enjoyed virtually blanket possession and four minutes later Kevin-Prince Boateng forced Zeljko Brkic into a diving save after a fine turn and angled shot.
But it was Siena who came closest to taking the lead on 24 minutes when Francesco Bolzoni broke through the heart of the defence but could only watch agonisingly as his poked effort dropped the wrong side of the post with Marco Amelia beaten.
The away side appeared to grow in confidence after the opportunity but they fell behind on 54 minutes when Nocerino, running on to a well-worked short corner, saw his deflected shot travel through a crowd of players and past the unsighted Brkic.
Milan made it 2-0 when Ibrahimovic slammed home a spot kick after Boateng had been felled by Brkic following a lightning break. Replays suggested he had gone to ground easily.
With 20 minutes left, Pato, on for Brazilian compatriot Robinho, had two golden chances inside the six-yard box to add a third but saw his goalbound effort blocked before firing the second effort high over.
Earlier on Saturday, goals either side of half-time from Cyril Thereau and Gennaro Sardo helped Chievo Verona to a comfortable 2-0 home win over Cagliari. The winners climbed to eighth in the table with their first win in four matches.