Syrian rebels on Wednesday freed 48 Iranians held captive since August in exchange for the release of more than 2,000 detainees in the first major prisoner swap of the country's civil war, officials said.