Service Employees International Union Local 1021 negotiators said the deal would protect union jobs and protect vital city services while helping to solve San Francisco's more than $500 million budget deficit.
Mayor Gavin Newsom's deadline for balancing the budget is June 1.
Supervisor John Avalos thanked union negotiators at a noontime news conference at City Hall.
"We're still facing really tough choices as a city, but you've made it a little bit easier to make those choices," he said.
"We're pleased to have reached another tentative agreement with SEIU," Newsom spokesman Nathan Ballard responded later. "We hope that the third time's a charm ... and that the members ratify the agreement."
If ratified, "We hope to minimize the number of layoffs in the future," said Ballard.
After union members voted down the previous agreement last week, Newsom said 1,000 city workers would have to be laid off.
"For me, SEIU is the heart and soul of city government," said Supervisor Bevan Dufty today.
"And I don't want to lose these people," he said.
One of the SEIU negotiators, Shari Zinn, an X-ray technician at San Francisco General Hospital, said an agreement that workers will not be paid for 10 of the legal holidays they have off constituted the bulk of the deal.
According to Zinn, though the city agreed to try to minimize layoffs, between 160 and 180 SEIU workers will still lose their jobs, affecting the health care and the parks and recreation departments especially, she said.
"This is shared pain," said Zinn.
Zinn said part of the reason the previous agreement was rejected by union members was due to confusion about the specifics of the deal.
The union over the next several days will conduct an education campaign among workers before the next vote, she said.