The Italian coast guard and five privately-run rescue boats plucked migrants from 16 overcrowded dinghies and three wooden vessels.
After non-stop back-to-back rescues, a total of 2,074 people were brought to safety, the coastguard said, a day after a shipwreck left at least 97 migrants feared drowned off Libya.
The Doctors Without Borders (MSF) boats Prudence and Aquarius rescued some 1,145 people from nine different dinghies in exhausting operations it said proved their presence off the North African coast was needed.
The rest were picked up by the coastguard, the Phoenix — run by the Maltese organisation Moas — the German NGO Sea Eye and the German Jugend's Iuventa.
Rescuers said a teenager had been found dead in one of the rubber boats on Friday during the “very difficult” rescues.
The EU's border control agency Frontex has accused donor-funded vessels of doing more harm than good by sailing off Libya and acting “like taxis”, and Italian prosecutors have suggested they may have links with traffickers — a charge they have fiercely denied.
“How many people would have crossed if we weren't there today, Frontex? Probably the same. How many would have died? Probably, many more,” MSF said on Twitter.
“Where are Frontex boats in a day like this?” it asked. “EU states keep their blind eyes turned” and in 2017 “the sea continues to be a graveyard”.
SOS Mediterranee, which operates the Aquarius jointly with MSF, posted a video showing women singing with happiness after their rescue.
Six years since the revolution that toppled dictator Moamer Kadhafi, Libya has become a key departure point for migrants risking their lives to cross the Mediterranean to Europe.
Hailing mainly from sub-Saharan countries, most of the migrants board boats operated by people traffickers in western Libya, and make for the Italian island of Lampedusa 300 kilometres (190 miles) away.
Since the beginning of this year, at least 590 migrants have died or gone missing along the Libyan coast, the International Organization for Migration said in late March.
More than 24,000 migrants arrived in Italy from Libya during the first three months of the year, up from 18,000 during the same period last year, according to the UN High Commissioner for Refugees.
By Ella Ide