Several diplomats said the ban on oil was made possible after a U-turn by Germany, which had said the measure would do too much harm to its economy.
EU foreign policy chief Josep Borrell said Russia was intensifying its attacks in Ukraine, making new sanctions “absolutely essential”.
“We must use our economic and financial abilities to make Russia pay the price for what it’s doing,” he said.
The commission will propose introducing the ban over six to eight months to give countries time to diversify their supply, the sources said.
The ban requires unanimous backing and could yet be derailed, with Hungary expected to mount strong opposition as it is dependent on Russian oil and close to the Kremlin.
Other countries are worried that a ban on oil would increase prices at the pump when consumer prices are already sharply on the rise because of the war.
“We must be very attentive to market reactions,” one official told AFP on condition of anonymity.
“There are solutions and we will get there in the end, but we must act with great care.”
Even though Russia exports two-thirds of its oil to the EU, the United States has expressed doubts about an outright ban.
Treasury Secretary Janet Yellen warned that it might have little impact on Russia because it would push up prices for its remaining exports.
EU energy ministers will discuss the ban at talks on Monday in Brussels, though they will not sign off on the decision.
This sixth package of anti-Russian measures will also target the country’s largest bank, Sberbank, which will be excluded from the international Swift messaging system, the diplomats said.
The EU had already banned imports of Russian coal, but Poland and the Baltic states called for an oil embargo as well.
Gas imports from Russia will remain untouched, with hugely dependent Germany promising to wean itself off Russian gas by mid-2024.
The reliance of Europe’s biggest economy on Russian energy has been exposed as an Achilles’ heel as Western allies scramble to punish Russian President Vladimir Putin for his attack on Ukraine.