Belgian Prime Minister Charles Michel said that an agreement" was found after the latest round of negotiations with Belgium's French-speaking communities who had been holding up the deal.
A signing ceremony on Thursday was cancelled after the region of Wallonia vetoed the agreement.
A Belgian deal would still have to be approved by the other 27 EU members. Under Belgium's federal system, the national government cannot sign the deal unless all six regional parliaments approve it.
- Is Ceta a good model for Brexit?
- Eight things about Wallonia
- Reality Check: Could Walloons sink a Brexit trade deal?
"All parliaments are now able to approve by tomorrow at midnight. Important step for EU and Canada."
He said regional politicians agreed a revised text that would allay "outstanding concerns" but gave no details. The deal was welcomed by the head of the Wallonian government, Paul Magnette.