The boat was spotted by helicopters at around 7.30pm on Wednesday evening, 80 nautical miles south of Lampedusa, La Stampa reported.
The navy launched an emergency operation after spotting the overcrowded boat struggling in rough seas.
The migrants – mostly men from Eritrea, Mali, Nigeria, Pakistan, Somalia and Zambia – were moved by naval ships to Augusta port in Sicily, La Stampa said.
The rescue is the latest in Italy’s “Mare Nostrum” operation, launched in October after two shipwrecks left more than 400 migrants dead.
With some of Europe’s southernmost islands, Italy is particularly vulnerable to human traffickers operating out of North Africa.
Figures from Italy’s interior ministry estimate around 42,000 migrants landed in Italy last year, more than three times the number in 2012.