Brent crude futures jumped 8 percent to more than $50 a barrel after Riyadh signaled it had finally reached a compromise with Iran after insisting in recent weeks that Tehran fully participate in any cut.
The source said the Organization of the Petroleum Exporting Countries had on Wednesday agreed on a proposal by member Algeria to reduce production by around 4.5 percent, or about 1.2 million barrels per day.
Saudi Arabia would contribute around 0.5 million bpd by reducing output to 10.06 million bpd, the source said, while Iran would freeze output at close to current levels of 3.797 million bpd and other members would also cut production.
The source added that OPEC had also suspended Indonesia from OPEC and hence the exact combined reduction was yet to be calculated. The meeting was still ongoing after around six hours of debate.
"OPEC has proved to the skeptics that it is not dead. The move will speed up market rebalancing and erosion of the global oil glut," said OPEC watcher Amrita Sen from Energy Aspects.
Before the meeting, Saudi Energy Minister Khalid al-Falih said OPEC was indeed focusing on significant cuts and hoped Russia and other non-OPEC producers would contribute a reduction of another 0.6 million bpd.
"It will mean that we (Saudi) take a big cut and a big hit from our current production and from our forecast for 2017," Falih said.
Clashes between Saudi Arabia and Iran have dominated many previous OPEC meetings.
But the tone changed on Wednesday with Iranian Oil Minister Bijan Zanganeh saying he was positive since Iran had not been asked to cut output.
He also said Russia was ready to reduce production.
"Moscow have agreed to reduce their production and cut after our decision," Zanganeh said.
OPEC, which accounts for a third of global oil production, made a preliminary agreement in Algiers in September to cap output in an effort to prop up oil prices, which have halved since mid-2014.
OPEC said it would exempt Iran, Libya and Nigeria from cuts as their output has been crimped by unrest and sanctions.