NBA commissioner David Stern emerged from a 15-hour meeting between the parties in the early hours of Saturday morning to say they had reached a "tentative understanding that is subject to a variety of approvals and very complex machinations."
He added: "We're optimistic that will all come to pass and that the NBA season will begin December 25."
The league plans a 66-game season and aims to open camps Dec. 9, ending the 149-day lockout.
Any agreement must still be ratified by both NBA owners and players, with a majority needed on each side.
The ratification process for the players is complicated since they disbanded their union on November 14 and launched an anti-trust lawsuit against the league in Minnesota.
They must drop the lawsuit and re-form the union in order to vote on the deal.
"We thought it was in both of our best interests to try to reach a resolution and save the game," union executive director Billy Hunter said.
If the deal is approved, it paves the way for a season in which each team plays 66 games.
And the deal appears to have come in time to save the league's traditional marquee Christmas lineup.
This season's schedule for December 25 was to feature Miami at Dallas in a rematch of last season's championship series won by the Mavericks over the LeBron James-led Heat, plus Boston at New York and Chicago at the Los Angeles Lakers.
Stern said the league's labor committee would discuss the agreement later Saturday and he expects them to recommend it to owners.
The league locked out players on July 1 after the previous collective bargaining agreement expired. Owners, claiming $300 million (Dh1.01 billion) losses last season among 22 of the league's 30 clubs, said they needed changes in how they divided some $4 billion in revenue and stricter controls on salary spending.
The wrangles over the financial issues eventually saw games scheduled from November 1-December 15 cancelled.