The rescue operation involved a Danish cargo ship in the waters near Libya and Malta.
Italian Coast Guard Capt Filippo Marini said that one rescued migrant died aboard a Coast Guard motorboat, raising the death toll to 19.
Maltese authorities said many of the bodies were in the vessel's hold. Italian authorities said engine fume inhalation was the apparent cause of death.
There was no word on the nationality of the survivors, who were taken to Italy.